如何使用变量打印字符串?
试试这个
awk -F ',' '{printf /p/${3}_abc/xyz/${5}_abc_def/}' file
需要输出
/p/APPLE_abc/xyz/MANGO_abc_def/
其中${3} = APPLE
和${5} = MANGO
答案 0 :(得分:8)
printf
允许插值变量。将此作为测试文件:
$ cat file
a,b,APPLE,d,MANGO,f
我们可以使用printf
来实现您想要的输出,如下所示:
$ awk -F, '{printf "/p/%s_abc/xyz/%s_abc_def/\n",$3,$5;}' file
/p/APPLE_abc/xyz/MANGO_abc_def/
在printf
中,字符串%s
表示insert-a-variable-here-as-a-string。我们有两次出现%s
,一次针对$3
,另一次针对$5
。
答案 1 :(得分:4)
不可读,但这里不需要printf。如果引用字符串部分,awk可以直接将变量插入到字符串中。
$ cat file.txt
1,2,APPLE,4,MANGO,6,7,8
$ awk -F, '{print "/p/" $3 "_abc/xyz/" $5 "_abc_def/"}' file.txt
/p/APPLE_abc/xyz/MANGO_abc_def/