我有一个文本文件,想从每行文本中删除“/d0/”、“/d1/”...“/d5/”。我知道我可以用“/d*/”来 ls 文件。我想是的,grep -vE '//d*// filename > filename
或者我可以通过远程服务器创建文件名的文本文件,ls
但它会在文本文件中的文件名上添加扩展名。任何帮助都将不胜感激。谢谢。
答案1
不要做
anycommand filename > filename
shell 在启动命令之前处理重定向。> file
重定向将首先截断文件,使其大小为 0 字节。然后,当命令启动时,它有一个空文件可供使用。
这sponge
包中的命令moreutils
就是为了这个目的而存在的:
anycommand filename | sponge filename
要回答你的问题,你需要使用它sed
来编辑你的文件
sed -i 's,/d[0-5]/,,' filename
sed 的-i
标志将把更改保存回相同的文件名。