【发布时间】:2016-01-02 13:04:05
【问题描述】:
如何打印带有变量的字符串?
试试这个
awk -F ',' '{printf /p/${3}_abc/xyz/${5}_abc_def/}' file
输出需要这个
/p/APPLE_abc/xyz/MANGO_abc_def/
${3} = APPLE
和${5} = MANGO
【问题讨论】:
-
你能显示
file的内容吗?
如何打印带有变量的字符串?
试试这个
awk -F ',' '{printf /p/${3}_abc/xyz/${5}_abc_def/}' file
输出需要这个
/p/APPLE_abc/xyz/MANGO_abc_def/
${3} = APPLE
和${5} = MANGO
【问题讨论】:
file的内容吗?
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 表示在此处插入变量作为字符串。我们有两次出现%s,一次出现在$3,一次出现在$5。
【讨论】:
不那么可读,但这里不需要 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/
【讨论】: