- 締切済み
特定文字列を除外する方法(grep -v xxx の代替案)
ファイルhoge.txtに aaaaa bbbbb . . . xxxxx と書かれているとします ここから特定の文字列を除外するとき egrep -v "aaaaa|bbbbb" hoge.txt とすれば、aaaaaとbbbbbは除外され表示されますよね これは"aaaaa|bbbbb"の部分で除外する対象を 指定するわけですが、出来れば"|"のような セパレータではなく、単純に xgrep -v aaaaa bbbbbと書きたいのですが このような書き方ってありますか? 除外対象となる文字列が都度変わる(つまり あるときはaaaaaとbbbbbを除去したいし、別の 場面ではcccccとdddddとeeeeeを除去したいなど) ため、除去対象を配列として保持して xgrep -v $exclude のように書くことができれば 配列を変えるだけでロジックに変更が起きないと 思っているのですがうまいやり方が見つかりません
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mtfoggy
- ベストアンサー率14% (37/255)
回答No.1
シェルやPerlでスクリプトを組めばいいです。 スクリプトの中で、引数で受け取った複数の文字列を「|」をはさんで連結して、 grep に渡せばいいです。 スクリプトを組む知識があれば簡単です。
お礼
自己解決しました。ありがとうございました ------------------------------------ #!/bin/csh set args="" foreach x ( aaa bbb ccc ) set args=( ${args} -ve ${x} ) end cat hoge.txt | grep ${args} -------------------------------------