使用sed从文件中删除与模式不匹配的行

杰克

我想从没有格式的文件中删除所有行

某物,某物,某物

例如,如果文件为以下文件:

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或类似文件来实现。

hjpotter92

您可以grep成功使用

grep -E '^[^.]+\.[^,]+,[^,]+,[^,]+$' file > temp
mv temp file

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除文件中与模式不匹配的行

不匹配模式时使用 sed 删除行字符

使用sed匹配模式并从行删除到文件末尾

使用 xargs 删除不匹配模式的文件

删除与sed模式不匹配的所有行

如何使用 Tcl/Expect 从文件中删除匹配模式的行

在模式匹配之间从文件中删除行

sed删除2个文件之间匹配模式的行

如何使用sed删除与模式匹配的行及其后的行?

如何从文件中删除在特定范围内与模式或arent不匹配的行

sed从行中删除所有开始的模式匹配

如何使用sed删除不包含模式的行

使用SED或AWK复制与xml文件中两个不同模式匹配的两行

如何使用sed \ awk在文件中查找某些行,然后匹配与其他模式匹配的所有后续行?

使用 sed 在模式匹配之前刪除所有行(不刪除模式行)

删除文件中不包括linux中匹配模式的行

sed-删除不包含模式的行

sed-从外部文件中删除采用模式的行

使用sed / awk命令仅在文件中第N个出现模式的地方删除'N'行

使用sed从php文件中删除行

“ sed”与模式不匹配

使用Awk / Sed替换文件中匹配模式的值

删除所有不匹配模式的行

如何从文件中删除与行匹配的特定模式

如果模式匹配,则在文件中插入/删除行

如何使用 bash 命令删除文本文件中匹配多个模式的行?

如何使用Perl删除模式匹配和文件中的其余行

使用Grep / sed / awk组合从文件中的一行删除模式,模式是另一列

使用sed删除不匹配的部分