小编vad*_*bog的帖子

AWK - 从命令行传递生成的字符串作为 awk 的代码

我正在尝试使用awk.

基本上,问题是为什么这个有效:

awk -F';' '{print $3 ";" $4 ";" }' file
Run Code Online (Sandbox Code Playgroud)

但这不会:

awk -F';' '{print '`echo '$3 ";" $4 ";"'`' }' file
Run Code Online (Sandbox Code Playgroud)

我的最终目标是将上述内容封装在一个命令中,以便我能够做到

my_cmd ';' 3 6 7 8 file(s)
Run Code Online (Sandbox Code Playgroud)

它应该显示#3,6,7,8;from分隔的字段file(s)

编辑我的帖子: 我发现我的问题是 echo 当然插入了一个新的行字符,这会导致 awk 出现问题 :o) \c 解决了这个问题,还有一些 \" 转义必须做(见下文)。

awk -F';' '{print '"`echo '$3 \";\" $4 \";\"\c'`"' }' file(s)
Run Code Online (Sandbox Code Playgroud)

现在我只剩下用命令来更改它,该命令将动态生成一个字符串,如 $2 ";' $5 ";' $6 ";' $9 ";"(数字和字段应该是输入)等,它应该在'{print '' }'

感谢 cbuckley,我发现了我的单行命令:(问题已解决)。

cut -d"$1" -f …
Run Code Online (Sandbox Code Playgroud)

unix bash awk ksh

2
推荐指数
1
解决办法
382
查看次数

标签 统计

awk ×1

bash ×1

ksh ×1

unix ×1