我有以下代码用于在文件中查找字符串,然后删除包含该字符串的行.
echo `sed /$string/d file.txt` > file.txt
Run Code Online (Sandbox Code Playgroud)
问题是,如果最初file.txt包含:
a
b
c
Run Code Online (Sandbox Code Playgroud)
删除"a"(string = a)后,file.txt将成为
b c
Run Code Online (Sandbox Code Playgroud)
代替
b
c
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
这是因为反击.改为:
sed -i /$string/d file.txt
Run Code Online (Sandbox Code Playgroud)
请注意,如果你想这样做原地的,你需要使用-i到sed的>会破坏文件之前,sed可以读取它.