我正在尝试使用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)