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のもう一つの良い選択肢です。