带有变量的 awk 打印字符串
Posted
技术标签:
【中文标题】带有变量的 awk 打印字符串【英文标题】:Awk print string with variables 【发布时间】: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
的内容吗?
【参考方案1】:
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
。
【讨论】:
【参考方案2】:不那么可读,但这里不需要 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/
【讨论】:
以上是关于带有变量的 awk 打印字符串的主要内容,如果未能解决你的问题,请参考以下文章