2016-06-29 8 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 

をしかし、明らかに、これは単に "VOL" との行を削除しますIN-どのように私は2つ以上の数字のルールをこのコードに組み込むのですか?

おかげ

+1

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

答えて

3

あなたはこのグレップを使用することができます。

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-secondary-function – treetop

関連する問題