我正在尝试使用 来操作字符串awk
。
输入
ABCD|98855.9849:122,9440.9886:3434|TEST
输出
ABCD|98855.9849:122,9440.9886:3434|TEST|122
我尝试了下面的命令
echo "ABCD|9885.9849:122,9440.9886:3434|TEST" |
awk -F"|" '{print $1"|"$2"|"$3"|"system("echo "$2"|awk -F[:,] '{print $2}'")}'
但我得到
awk: {print $1"|"$2"|"$3"|"system("echo "$2"|awk -F[:,] {print
awk: ^ unterminated string
怎么做?
答案1
awk
这可以使用以下函数在一次内完成split()
:
$ awk -F"|" -v OFS="|" '{split($2, arr, "[,:]"); print $1, $2, $3, arr[2]}' input
ABCD|9885.9849:122,9440.9886:3434|TEST|122
-v OFS="|"
设置输出字段分隔符,这样我就可以print $1, $2, ...
不必|
每次都指定。split($2, arr, "[;,]")
使用分隔符正则表达式将的内容拆分$2
到数组 中(就像)。arr
[,:]
FS