我有一个输入字符串,其格式如下:
string1;string2"string3";string4
我想解析此文件以获得string3
using 的值awk
。为此,我可以先定界;
,打印第二段,然后定界"
并打印第二段。使用管道的示例:
$ echo 'string1;string2"string3";string4' | awk -F\; '{print $2}' | awk -F\" '{print $2}';
string3
Run Code Online (Sandbox Code Playgroud)
我想将其合并为一个awk
命令,但是我不知道如何在命令期间更改字段分隔符。我可以使用语法awk
来更改分隔符吗?
您可以使用split
函数里面awk
:
s='string1;string2"string3";string4'
awk -F ';' 'split($2, a, /"/){print a[2]}' <<< "$s"
string3
Run Code Online (Sandbox Code Playgroud)
根据链接的文档:
split(string, array [, fieldsep [, seps ] ])
将字符串划分为由fieldsep分隔的片段,并将片段存储在数组中,并将分隔符字符串存储在seps数组中。