一个非常简单的问题(我认为)
我正在学习编辑文件 awk
我想从文件中搜索所有线条并删除所有带有醋酸纤维素的线条
我试过了
awk 'match($0,"acetate") == 0 {print $0}' filename.txt > filename.txt
Run Code Online (Sandbox Code Playgroud)
但是,这会返回一个空的txt文件.
有什么建议吗?
试着这样做:
awk '!/acetate/{print}' filename.txt > new_filename.txt &&
mv new_filename.txt filename.txt
Run Code Online (Sandbox Code Playgroud)
或者干脆:
awk '!/acetate/' filename.txt > new_filename.txt &&
mv new_filename.txt filename.txt
Run Code Online (Sandbox Code Playgroud)
您无法在同一时间打印和修改文件awk.如果你想在同一个命令中执行它,请尝试使用sed:
sed -i '/acetate/d' filename.txt
Run Code Online (Sandbox Code Playgroud)
或者对于Mac Os X:
sed -i.'' '/acetate/d' filename.txt
Run Code Online (Sandbox Code Playgroud)