awk打印带变量的字符串

Gla*_*lad 6 variables awk printf

如何使用变量打印字符串?

试试这个

awk -F ',' '{printf /p/${3}_abc/xyz/${5}_abc_def/}' file
Run Code Online (Sandbox Code Playgroud)

在输出时需要这个

/p/APPLE_abc/xyz/MANGO_abc_def/
Run Code Online (Sandbox Code Playgroud)

在哪里${3} = APPLE${5} = MANGO

Joh*_*024 11

printf允许插值变量.用这个作为测试文件:

$ cat file
a,b,APPLE,d,MANGO,f
Run Code Online (Sandbox Code Playgroud)

我们可以printf用来实现你想要的输出如下:

$ awk -F, '{printf "/p/%s_abc/xyz/%s_abc_def/\n",$3,$5;}' file
/p/APPLE_abc/xyz/MANGO_abc_def/
Run Code Online (Sandbox Code Playgroud)

printf,字符串%s表示insert-a-variable-here-as-a-string.我们有两次出现%s,一次为一次$3,一次为$5.


zze*_*nnn 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/