2016-07-05 83 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/