2016-06-29 181 views
1

您好,我想刪除包含字符串vol後跟2個或更多數字的csv中的行。刪除包含字符串後跟x數字的字符串

實例數據:

2454564, Stage Mechanics vol 4 8 9, 121545, 454545454 
24545454, Dancing on ice vol 5, 454554, 45454545 
5454545, Who is the man, 545456454, 4545454 
8785648654, year of the Panda vol 89 12, 545454, 545454 

所需的輸出:

24545454, Dancing on ice vol 5, 454554, 45454545 
5454545, Who is the man, 545456454, 4545454 

我知道我可以使用:

cat $csv1 | grep -vi "vol" > $newcsv 

但很明顯,這將只是刪除線, 「卷」 在 - 我該如何將以下2個或更多數字規則合併到此代碼中?

感謝

+1

'grep -vi'vol [[:digit:]] {2}'' –

回答

3

您可以使用此grep的:

grep -Ev '\bvol([[:blank:]]+[[:digit:]]+){2}' file 

24545454, Dancing on ice vol 5, 454554, 45454545 
5454545, Who is the man, 545456454, 4545454 

模式([[:blank:]]+[[:digit:]]+){2}將匹配vol後空格/製表符分隔的至少2個號碼。

+1

你說得對。我的模式沒有解決'Stage Mechanics'這一行。 –

+1

是的,完美的謝謝 – treetop

+1

剛剛添加了一個新的問題,它涉及到這一個:http://stackoverflow.com/questions/38143780/generate-record-of-files-which-have-been-removed-by-grep-as -a-二次函數 – treetop