【问题标题】:Awk print string with variables带有变量的 awk 打印字符串
【发布时间】: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的内容吗?

标签: variables awk printf


【解决方案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/
    

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 2019-10-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 2014-05-13
      相关资源
      最近更新 更多