grep凍結

grep凍結

grepの使用に問題があります。 Win 10にubuntu 18.04がインストールされています。最も簡単なコマンドを停止し、必要に応じてキャンセルすることができ、新しいファイルを作成しますが、何も書きません。

$ mkdir test
$ cd test
$ ls
$ sudo grep "Werk!" > new
^C
$ ls
new
$ cat new

私は明らかなものを見逃していますか?

ベストアンサー1

はい。 STDINをgrep'ing中なので、決して来ない入力を待って永久に停止します。

grepの引数には「.」を含め、現在のディレクトリをgrepするために-r(再帰的)を含めることができます。

grep -r hello .

grep他の人は、基本的な動作が理想的ではないことを発見したので、grepこの問題のないいくつかの選択肢を見つけることができます。例えば銀を探す人名前で検索すると、デフォルトでag現在のディレクトリを再帰的に検索するため、正しい構文の推測は正確ですag

ag hello

agまた、大文字を含まない限り、大文字と小文字を区別しない検索がデフォルト値に設定されます。これはおそらくあなたが望むものかもしれません。また、デフォルトでは色を使用し、デフォルトでgrep使用されるより弱く古いglobスタイルのマッチングではなく、より強力なPCRE正規表現エンジン(Perlなど)を使用します。

このようなユーザビリティの問題はgrep、可能であれば、grep必要なときにのみ新しい選択肢を使用する理由です。grep共有できるシェルスクリプト用の標準ツールとログインするLinuxシステムの標準ユーティリティを知ることは依然として有用です。

「ripgrep」と「ack」はgrepのもう一つの良い選択肢です。

おすすめ記事