比較的大きな文字列をgrep
ファイルに渡すことはできますか、それともファイルのみを受け入れることができますか?
出力をgrepにパイプ処理するのではなく、次のようなことを行うことに注意してください。
grep 'hello' 'hello world'
(もちろんそれは機能しません、少なくともそうではありません)
比較的大きな文字列をgrep
ファイルに渡すことはできますか、それともファイルのみを受け入れることができますか?
出力をgrepにパイプ処理するのではなく、次のようなことを行うことに注意してください。
grep 'hello' 'hello world'
(もちろんそれは機能しません、少なくともそうではありません)
回答:
それが可能だ。これを試して:
grep 'hello' <<< 'hello world'
代わりに文字列を含む変数を渡すこともできます:
str='hello world'
grep 'hello' <<< $str
grep
コマンドライン引数を検索対象のテキストとして解釈するオプションはありません。grep
文字列への通常の方法は、文字列をgrep
の標準入力にパイプすることです:
$ echo 'There once was a man from Nantucket
Who kept all his cash in a bucket.
But his daughter, named Nan,
Ran away with a man
And as for the bucket, Nantucket.' | grep -i nan
There once was a man from Nantucket
But his daughter, named Nan,
And as for the bucket, Nantucket.
$
このecho
ように、複数行のテキストを含む文字列を作成できます。必要に応じて、インタラクティブにシェルに入力することもできます。
これでニーズが満たされない場合は、パイプが受け入れ可能なソリューションではない理由を説明できますか?
パイプで grep
なぜだけではありません:
echo 'hello world' | grep 'hello'
参照:https : //stackoverflow.com/questions/2106526/how-can-i-grep-complex-strings-in-variables
grep
でしょうか?そのprintf "various\ntext to grep here" | grep "text"
ため、「grep to text here」というテキストが生成される可能性があります