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'

如果要运行结果,请将输出通过管道传输到 shell(假设您的分支名称不包含单引号):

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

相关内容