grep の使用に問題があります。Win 10 に ubuntu 18.04 をインストールしています。最も単純なコマンドでもフリーズしてしまいます。キャンセルして新しいファイルを作成することはできますが、何も書き込まれません。
$ mkdir test
$ cd test
$ ls
$ sudo grep "Werk!" > new
^C
$ ls
new
$ cat new
何か明らかなことを見逃しているのでしょうか?
答え1
はい。STDIN を grep しているので、決して来ない入力を待って永遠にハングします。
おそらく、現在のディレクトリを grep するために、grep の引数として「.」と -r (再帰) を含めることを意図していたのでしょう。
grep -r hello .
デフォルトの動作が理想的ではないと感じる人もいるので、代替案によってはこの問題がないことgrep
がわかるでしょう。たとえば、grep
シルバーサーチャーは名前に従って実行されag
、デフォルトでは現在のディレクトリを再帰的に検索するため、正しい構文についての推測は次のようになりますag
。
ag hello
ag
また、大文字を含めない限り、大文字と小文字を区別しない検索がデフォルトになりますが、これはおそらくあなたが望んでいることです。また、デフォルトで色を使用し、デフォルトの弱い古い glob スタイルのマッチングではなく、より強力な PCRE 正規表現エンジン (Perl など) を使用するように設定されてgrep
います。
このようなユーザビリティの問題があるため、必要な場合にgrep
のみ新しい代替手段を使用する必要があります。共有できるシェル スクリプトの標準ツールや、ログインするすべての Linux ボックスの標準ユーティリティとして知っておくことは、依然として役に立ちます。grep
grep
「ripgrep」と「ack」は grep の代替として適しています。
答え2
grep
パターンを検索するファイルを指定するコマンドの 2 番目の引数がありません。
従ってください男 1 grepについてサポートを受けるにはgrep
。
答え3
おそらく、ファイル「new」にテキストを記録したい場合、「echo texts > new」を使用して実行できます。