awkを使用して標準出力に印刷するコマンドをどのように実行しますか?たとえば、awk を使用して以下を印刷します。
grep -B100 some file1.tcl
grep -B100 some file2.tcl
次に、.shファイルに保存し、そのファイルをインポートします。コマンドを実行できるように、これをどこかにパイプできますか?
awk '{print xx}' | pipeline
答え1
ただシェルにパイプします。
$ printf 'echo foo\necho bar\n' | bash
foo
bar
答え2
単純なコマンドよりも進化したコマンドの場合(もちろん簡単なコマンドもあります):
eval "$( awk ... )"
これにより、現在のシェルのコンテキストでコードが実行されるため、コードはシェルで変数を設定または変更することもできます。
grep
しかし、明らかに次のように他のファイルを解析したいのでそれ同じawk
プログラムを使用していますか? ...またはawk
パターンとファイル名を読み取る別のプログラムを使用しますか?
答え3
すでに危険にさらされているのでパイプする必要もありません。コマンドを実行すると、常にサブシェル拡張構成で実行される安全なコマンドのみが出力されます。
$ $( awk 'BEGIN { print "echo hello" }' )
hello