戻ると再帰的にgrepするにはどうすればよいですか?次のフォルダがあるとしましょう。
20170808
20170809
20170810
grepを実行すると、grep -ri 'string'
各フォルダをアルファベット順にインポートして「文字列」を検索します。最後のフォルダから最初のフォルダまで逆方向に検索するにはどうすればよいですか?
答え1
順序はgrep -r
通常ランダムであり(必ずしもアルファベット順である必要はありません)、通常はディレクトリ内のファイルの並べ替え方法と、ディレクトリ巡回を最適化するgrep
ために実装に基づいて並べ替えることができます。
ここではGNU grep
2.25を使用して:
$ grep -r . .
./4/c:c
./1/b:b
./2/a:a
./10/d:d
特定の順序が必要な場合は、放棄し、必要な-r
順序でファイルのリストをパラメータとして提供する必要があります。
たとえば、あなたの場合は以下を使用してくださいzsh
。
$ grep -H . ./**/*(D.On)
./4/c:c
./2/a:a
./1/b:b
./10/d:d
ここではOn
逆順を使用してください名前で。n
数値ソート用の修飾子を追加できます。
$ grep -H . ./**/*(D.nOn)
./10/d:d
./4/c:c
./2/a:a
./1/b:b
(-H
別のGNUgrep
拡張機能では、ファイルが1つしかない場合でもファイル名が常に印刷されるようにします。別の実装では、空のファイルをgrep
引数として追加できます。たとえば、少なくとも2つのファイル名が渡されることを保証します/dev/null
。しますgrep
。
これも非常に便利ですzgrep
回転時系列でソートされたログファイル(例:access.log.10.gz
... access.log.2.gz
、、、):access.log.1
access.log
zgrep something access.log*(nOn)
(押すこともできますが、最後の修正zgrep something access.log*(Om)
信頼できる場合)。