我正在尝试使用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实际执行这些命令? 谢谢你的帮助。
答案 0 :(得分:0)
在更详细地查看文件并进行一些实验后,我发现了问题所在:我尝试使用sed编辑的文本文件具有CR行尾字符。当我将其更改为LF时,sed命令工作正常。 感谢那些提出建议的人。