没有回复我

时间:2017-03-31 09:40:49

标签: linux sed

我正在尝试使用sed但无法让它工作。我的系统是Ubuntu 16.04.2,GNU sed 4.2.2

我有一个包含大量文本文件的文件夹,我想编辑它们。从该文件夹中的终端我尝试了以下(单独 - 一次一个命令)。

要删除所有文件中的空白行:sed -i '/^$/d' *txt

如果这些行包含空格:sed -i '/^\s*$/d' *txt

删除第4行:sed -i '4d' *.txt

在每种情况下,终端中都没有错误消息,但不会发生更改。我尝试了相同的命令但是对于单个文件而不是全部,所以使用文件名而不是* .txt,但仍然没有实现任何更改。

sed完全活跃的唯一标志是,如果我不做-i但要求新文件:sed'4d'fred.txt> fred2.text

新文件fred2已创建 - 但第4行仍在那里! 我错过了什么?如何让sed实际执行这些命令? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在更详细地查看文件并进行一些实验后,我发现了问题所在:我尝试使用sed编辑的文本文件具有CR行尾字符。当我将其更改为LF时,sed命令工作正常。 感谢那些提出建议的人。