awk 複数のコマンドと複数の引数

awk 複数のコマンドと複数の引数

私はこの出力を変えようとしています:

❯ hg branches -T'{node} {branch}\n'
4b0826975cb29da26a6dd13f463241463c43c6a7 maria
5c31751cdb774f8b6337b6f64232b15903530997 default

以下のコマンドを入力します:

hg bookmark -r 4b0826975cb29da26a6dd13f463241463c43c6a7 maria -f
hg bookmark -r 5c31751cdb774f8b6337b6f64232b15903530997 default -f

私は試した:

hg branches -T'{node} {branch}\n' | awk '{hg bookmark -r $1 $2 -f}'

しかし、それは私が望んでいたことではなかったと思います。

基本的に、引数を区切るためにスペースを使用し、コマンドを区切るために \n を使用します。エラーが発生しにくくなるように、異なる区切り文字を選択できるとさらに良いでしょう。

これどうやってするの?

答え1

不足している部分をテンプレートに追加できます。

hg branches -T'hg bookmark -r {node} {branch} -f\n'

結果を実行する場合は、出力をシェルにパイプします (ブランチ名に一重引用符が含まれていないことを前提とします)。

hg branches -T"hg bookmark -r {node} '{branch}' -f\n" | sh

関連情報