私のスクリプトはパラメータを受け取り、他のファイルをgrepする必要があります。スクリプトは各パラメータを繰り返します。
ORを使用して単一の検索文字列とgrepからパラメータを収集する方法はありますか?私はすべてを一度に検索したら、私のスクリプトがより速くなることを望んでいるため、これをスピードのために実行したいと思います。どんなアイデアもありがとうございます。
答え1
grep -e foo -e bar -e baz files
または:
grep 'foo
bar
baz' files
foo
、bar
がbaz
デフォルトの正規表現ではなく文字列の場合は、上記-F
の2つのコマンドにこのオプションを追加してくださいgrep
。
拡張正規表現の場合:
grep -E 'foo|bar|baz' files
文字列リストが位置パラメータ($1
、$2
...)にある場合:
NL='
'
IFS=$NL # or IFS=$'\n' with ksh93/zsh/bash/mksh/FreeBSD sh...
grep -Fe "$*" files
($*
位置パラメータと最初の文字を連結したものです$IFS
。)
答え2
egrep
(またはgrep -E
)次のことができます。または:
egrep "string|string|string" <file>
答え3
別のオプションは、次のものを使用することです。確認する拡張正規表現はデフォルトでサポートされています。
ack "one|two"
大文字と小文字を区別しない場合は、ack -i
非標準ファイル形式の場合ack --all
。