我想删除没有该表单的文件中的所有行:
something.something,东西,东西
例如,如果文件如下:
A sentence, some words
ABCD.CP3,GHD,HDID
Hello. How are you?
A.B,C,D
dbibb.yes,whoami,words
Run Code Online (Sandbox Code Playgroud)
我会留下:
ABCD.CP3,GHD,HDID
A.B,C,D
dbibb.yes,whoami,words
Run Code Online (Sandbox Code Playgroud)
我试图分支到sed脚本的末尾,如果我匹配我不想删除的模式但是如果它不匹配则继续并删除该行:
cp $file{,.tmp}
sed "/^.+\..+,.+,.+$/b; /.+/d" "$file.tmp" > $file
rm "$file.tmp"
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何影响.
我想我可以逐行读取文件,检查是否匹配模式,如果有,则将其输出到文件,但我想使用sed或类似的方法.
即可grep
成功使用:
grep -E '^[^.]+\.[^,]+,[^,]+,[^,]+$' file > temp
mv temp file
Run Code Online (Sandbox Code Playgroud)