xenserver を使用して、ディレクトリ内の各ファイルに対してコマンドを実行し、コマンドの出力からいくつかのものを grep してファイルに追加したいと考えています。
使用したいコマンドと、必要に応じて文字列を grep する方法については明確です。
しかし、私がはっきりしていないのは、ファイルが見つからなくなるまで、各ファイルに対してこのコマンドを実行し、次のコマンドに進む方法です。
grep $PATTERN *
で十分でしょう。デフォルトでは、grep はすべてのサブディレクトリをスキップします。ただし、それらをgrepしたいgrep -r $PATTERN *
場合はそうです。
Linux では、通常、このコマンドを使用してgrep
、ディレクトリ内の特定のテキストを再帰的に検索します。
grep -rni "string" *
どこ
r
= 再帰的、つまり現在のディレクトリ内のサブディレクトリを検索n
= 行番号を出力するstdout
i
= 大文字と小文字を区別しない検索検索を使用します。真剣に、それがどのファイルを操作しているかを実際に確認できるため、これが最善の方法です。
find . -name "*.sql" -exec grep -H "slow" {} \;
-H は Mac 固有のものであり、結果にファイル名が表示されることに注意してください。
複数のコマンドを実行したい場合は、次を使用できます。
for I in `ls *.sql`
do
grep "foo" $I >> foo.log
grep "bar" $I >> bar.log
done