Grep はパターンファイル内の文字列で始まる行を探します。

Grep はパターンファイル内の文字列で始まる行を探します。

grepに提供したいファイル(パターンファイル)があり、-f文字列を含む他のファイル(検索ファイル)で一致するものを見つけたいと思います。によって。 。スタート与えられたパターン。たとえば、

スキーマファイル

1234
qwerty
chicken

ファイル検索

12345
543212345
qwerty
1fwf32sgww
chicken fingers

上記のファイルが与えられた場合、grepは次の行を返す必要があります。

12345
qwerty
chicken fingers

どうすればいいですか?

ベストアンサー1

転送したい^内容をすべての行の前に追加できます。PATERN_FILEgrep -f

paste -d '^' /dev/null PATTERN_FILE | grep -f - SEARCH_FILE

またはsed 's/^/^/' PATTERN_FILE代わりにpaste

現在の行がデフォルトの正規表現ではなく固定文字列である場合は、PATTERN_FILEすべての正規表現演算子もエスケープする必要があります。

sed 's/[][$^*\\.]/\\&/g; s/^/^/' PATTERN_FILE | grep -f - SEARCH_FILE

おすすめ記事