Tag: sed

sed或awk:删除模式后的n行

我将如何在sed中混合模式和数字范围(或者任何类似的工具 – 例如awk)? 我想要做的是匹配文件中的某些行,并在继续之前删除接下来的n行,我想将其作为stream水线的一部分。

如果它是文件中的最后一个字符,如何删除换行符?

我有一些文件,如果它是文件中的最后一个字符,我想删除最后一个换行符。 od -c显示我运行的命令是用一个新的尾行写入文件: 0013600 nt > \n 我已经尝试了一些与sed技巧,但最好的我可以想到的是不是在做的伎俩: sed -e '$s/\(.*\)\n$/\1/' abc 任何想法如何做到这一点?

如何使用bash / sed脚本删除文本文件的第一行?

我需要使用bash脚本从一个巨大的文本文件中重复删除第一行。 现在我正在使用sed -i -e "1d" $FILE – 但大约需要一分钟的时间才能删除。 有没有更有效的方法来完成这个?

在unix命令行中移除文件的前N行

我试图从一个非常非常大的文件中删除前37行。 我开始尝试sed和awk,但他们似乎需要将数据复制到一个新的文件。 我正在寻找一个“删除线路就位”的方法,不像sed -i不做任何types的副本,而只是删除现有文件中的行。 这是我所做的… awk 'NR > 37' file.xml > 'f2.xml' sed -i '1,37d' file.xml 这两个似乎做了一个完整的副本。 有没有其他简单的CLI,可以做到这一点,没有一个完整的文件遍历?

从CSV中删除非ASCII字符

我想从文件中删除所有非ASCII字符。 我发现tr的一个解决scheme,但我想我需要写回修改后的文件。 我需要在相对较好的performance上做到这一点。 有什么build议么?

使用sed来批量重命名文件

目的 更改这些文件名: F00001-0708 RG-biasliuyda F00001-0708-CS-akgdlaul F00001-0708-VF-hioulgigl 到这些文件名: F0001-0708-RG-biasliuyda F0001-0708-CS-akgdlaul F0001-0708-VF-hioulgigl shell代码 去testing: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' 去表演: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh 我的问题 我不明白sed代码。 我明白什么是替代命令 $ sed 's/something/mv' 手段。 我有一些正则expression式。 但我不明白这里发生了什么事情: \(.\).\(.*\) 或在这里: & \1\2/ 前者对我来说就是:“一个单一的字符,后面跟着一个单一的字符,然后是任何单个字符的长度序列” – 但是当然,除此之外还有更多。 就后者而言: & \1\2/ 我不知道。 我真的想了解这个代码。 请帮帮我,伙计们

如何在模式前插入换行符?

不是如何在一行之前插入换行符。 这是问如何在行内的模式之前插入换行符。 例如, sed 's/regexp/&\n/g' 将在正则expression式模式后插入一个换行符。 我怎样才能做到这一点,但在模式之前? 这是一个示例input文件 somevariable (012)345-6789 应该成为 somevariable (012)345-6789

在目录和子目录中查找并replace为sed

我运行这个命令,在我的网站的根目录下的所有文件中查找并replace所有出现的“apple”和“orange”: find ./ -exec sed -i 's/apple/orange/g' {} \; 但它不通过子目录。 这个命令有什么问题? 编辑:这里是一些find ./命令的输出行: ./index.php ./header.php ./fpd ./fpd/font ./fpd/font/desktop.ini ./fpd/font/courier.php ./fpd/font/symbol.php

在sed脚本中的shellvariables

sed命令在命令提示符下按预期工作,但在shell脚本中不起作用。 new_db_name=`echo "$new_db_name" | sed 's/$replace_string/$replace_with/'`

用awk或sed删除一列

我有一个三列的文件。 我想删除第三列(就地编辑)。 我如何用awk或sed来做到这一点? 123 abc 22.3 453 abg 56.7 1236 hjg 2.3 期望的输出 123 abc 453 abg 1236 hjg