各行には文字列ファイルがあります。
たとえば、
AAAAA
BBBBB
CCCCC
etc
特定のディレクトリの一連のファイルに各文字列が存在するかどうかを1つずつ確認したいと思います。
私は何ができるかを知っています。grep -f filename
すぐに検索をすることです。しかし、私に必要なのは、より具体的な結果を得るために1行に1つ以上の正規表現を使用することです。文字列を含むファイルはサイズが大きく頻繁に変更されるため、式を追加するために各行を変更することは意味がありません。
したがって、私にとって必要なのは、grep -f filename
ファイルの各行を繰り返し(そしてファイルからそれらをgrepしながら)、より多くの条件を追加することです。例えばAAAAA
そして [0-9]{1,3}$
同じ行にも存在します。
ベストアンサー1
grep
パイプラインを使用して、このステップを段階的に実行できます。
grep -f your_file list_of_files|grep -E extra_condition
または
while read line; do
grep -E -e "$line" -e extra_condition list_of_files
done < your_file
どちらの場合も、-E
次の形式(数値数量子を含む)のパターンを使用するには[0-9]{1,3}$
切り替える必要があります。
編集する
Drav Sloanのコメントのおかげで、私たちは2番目のバージョン(loop while
)を次のように単純化することができます。
grep -E -e "extra_condition" -f your_file list_of_files
しかし、実際にはパターンを探します。またはもう一つはパターンではありませんそしてもう一つ。最初の形式に固執する必要があります。