2016-07-05 84 views
2

我有一个包含看起来像这样的字符串一个相当大的文本文件的东西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/

什么是做到这一点的最有效方法是什么?

回答

3

这是awk量身定制的作业来计数行动NF通过/ deliited(字段数量):

awk -F/ 'NF != 7' file 

//a/b/as/d/e/ 
//af/y/x/f/e/ 

NF==7意味着有6秒睫毛(分隔符)排成一行。

2

使用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/