1つのファイルでgrepを実行し、コマンドごとにコマンドを実行する方法は?コマンドをgrepして実行する方法(一致するたびに)
ファイル:
foo
bar
42
foo
bar
私はfoo
上のすべての試合のために例date
のために実行するために実行したいです。
試みがうまくいかない、次のとおりです。
grep file foo | date %s.%N
はどのようにそれを行うには?
1つのファイルでgrepを実行し、コマンドごとにコマンドを実行する方法は?コマンドをgrepして実行する方法(一致するたびに)
ファイル:
foo
bar
42
foo
bar
私はfoo
上のすべての試合のために例date
のために実行するために実行したいです。
試みがうまくいかない、次のとおりです。
grep file foo | date %s.%N
はどのようにそれを行うには?
grep file foo | while read line ; do echo "$line" | date %s.%N ; done
:入力の各ラインについて
grep file foo | while read line
do
echo "$line" | date %s.%N
done
、read
変数$line
に値を入れます、そしてwhile
ステートメントがdo
とdone
間ループ本体を実行します。値は現在stdinではなく変数になっているので、echo
をstdinにプッシュバックしていますが、ちょうどdate %s.%N "$line"
を実行すると、そのように動作します。
find . -iname "*blah*.dat" | while read filename; do ....
がfor
で失敗します:for
は常にスペースに分割し、これはファイルのリストを読み込むための悪夢になるので、似ているfor line in `grep file foo`
を使用して
は避けてください。
xargsコマンドが必要です。 http://en.wikipedia.org/wiki/Xargs
grep file foo | xargs date %s.%N
Cygwin環境で完全なWindowsのパスにいくつかのファイルと変換マッチのマッチングの例
$ find $(pwd) -type f -exec ls -1 {} \; | grep '\(_en\|_es\|_zh\)\.\(path\)$' | xargs cygpath -w
grep command_string file | sh -
こんにちは@ジェームズ、ようこそので、答えを向上させるいくつかの説明を追加することをお勧めし、それはupvoted得る可能性が高くなります。 –
問題ありません。 grepがファイル(-f)から複数のパターンを読み取る機能や、xargsのstdinからコマンドを構築する機能など、大部分のバルクタスク用のUnixツールがあります。 –
このすべきではない。 grepのFOOファイル ------- NAMEのgrep、egrepの、fgrepは、rgrep - パターンを 形式のgrep [オプション] PATTERN [FILEに一致印刷ライン.. 。] – Xofo
スクリプトを実行するにはどうすればいいですか? grep file foo | while read line do エコー "$ line" |日付%s。%N done ファイルを入れる必要がありますか? –