我有一个包含看起来像这样的字符串一个相当大的文本文件的东西X量的所有字符串:删除包含
//a/b/ww/d/ //b/d/we/c/ //a/b/as/d/e/ //af/y/x/f/e/ //b/d/we/c/
我想删除所有只有6斜杠在他们的线。
斜线之间的文字是随机的,可以更长或更短。
所需的输出:
//a/b/as/d/e/ //af/y/x/f/e/
什么是做到这一点的最有效方法是什么?
我有一个包含看起来像这样的字符串一个相当大的文本文件的东西X量的所有字符串:删除包含
//a/b/ww/d/ //b/d/we/c/ //a/b/as/d/e/ //af/y/x/f/e/ //b/d/we/c/
我想删除所有只有6斜杠在他们的线。
斜线之间的文字是随机的,可以更长或更短。
所需的输出:
//a/b/as/d/e/ //af/y/x/f/e/
什么是做到这一点的最有效方法是什么?
这是awk
量身定制的作业来计数行动NF
通过/
deliited(字段数量):
awk -F/ 'NF != 7' file
//a/b/as/d/e/
//af/y/x/f/e/
NF==7
意味着有6秒睫毛(分隔符)排成一行。
使用grep和-v
(反向匹配)标志删除匹配/
的6个外观的行。假设您的文件位于@/tmp/test.txt
,该命令将工作:
grep -Ev "^[^\/]*(\/[^\/]*){6}$" /tmp/test.txt
我只是你的榜样输入测试它:
$ grep -Ev "^[^\/]*(\/[^\/]*){6}$" /tmp/test.txt
//a/b/as/d/e/
//af/y/x/f/e/