ターミナル - Macbook GREP クエリ

ターミナル - Macbook GREP クエリ

私は次のターミナル コマンドを使用して、非常に大きな csv ファイル内の特定のテキストを検索し、出力として別の csv ファイルを作成することに成功しました。

grep "text" filename.csv > outputfile.csv

同様のコマンドを使用して複数の異なるテキストを検索し、同じ出力ファイルに保存する方法はありますか?

答え1

複数のパターンを検索できます-e:

grep -e text1 -e text2 filename.csv > outputfile.csv

GNU grep、FreeBSD grep、busybox grep実装でテスト済み。 POSIX-eGNU grep のマニュアルページでは次のように説明されています。

   -e PATTERN, --regexp=PATTERN
          Use PATTERN as the pattern.  If this option is used
          multiple times or is combined with the -f (--file)
          option, search for all patterns given.  This option can
          be used to protect a pattern beginning with "-".

答え2

原則として、正規表現で「OR」スタイルの代替を使用できます。

grep "text1\|text2" filename.csv > outputfile.csv

または

grep -E "text1|text2" filename.csv > outputfile.csv

利用可能な構文は、インストールされている のバージョンによって多少異なりますgrep(上記は GNU grep では確実に機能します)。

答え3

別の文字列を検索する場合は、egrepまたは を使用できますgrep -E

egrep "text|string|word|" filename.csv > outputfile.csv

grep -E "seal|walrus|otter" filename.csv > outputfile.csv

これらは、これらの文字列のいずれかを含む行を出力します。また、次のような他のオプションと組み合わせることもできます。

egrep -v "text|string|word|" filename.csv > outputfile.csv

これにより、これらの文字列が含まれない行が出力されます。

関連情報