AWK 中的多重分割

JBo*_*Boy 2 linux bash awk

我想使用 AWK 执行 2 个拆分(我有 2 个字段分隔符),我正在处理的数据字符串看起来像这样:

data;digit&int&string&int&digit;data;digit&int&string&int&digit
Run Code Online (Sandbox Code Playgroud)

如您所见,外部字段分隔符是一个分号,嵌套的分隔符是一个与号。我正在用 awk 做的是(假设字符串将在名为 test 的变量中)

echo ${test} | awk '{FS=";"} {print $2}' | awk '{FS="&"} {print $3}'
Run Code Online (Sandbox Code Playgroud)

这应该捕获“字符串”字样,但由于某种原因,这不起作用。似乎没有应用第二个管道,因为我只看到第一个 awk 函数的结果有什么建议吗?

iru*_*var 5

使用 awk 数组

echo $test | awk -F';' '{split($2, arr, "&"); print(arr[3])}'
Run Code Online (Sandbox Code Playgroud)