我希望从文件中删除所有不符合以下形式的行:
something.something,something,something
例如,如果该文件如下:
A sentence, some words
ABCD.CP3,GHD,HDID
Hello. How are you?
A.B,C,D
dbibb.yes,whoami,words
我最终会得到:
ABCD.CP3,GHD,HDID
A.B,C,D
dbibb.yes,whoami,words
如果我匹配到不想删除的模式,我尝试将分支延伸到sed脚本的末尾,但如果没有匹配,则继续并删除该行:
cp $file{,.tmp}
sed "/^.+\..+,.+,.+$/b; /.+/d" "$file.tmp" > $file
rm "$file.tmp"
但这似乎没有任何影响。
我想我可以逐行读取文件,检查是否匹配模式,并在匹配时将其输出到文件中,但我希望使用sed或类似工具来完成。