我正在尝试使用Awk的split函数将输入拆分为三个字段,以便使用值作为field[1]、field[2]、field[3]。我尝试提取第一个值: 冒号及其后面的所有内容,然后是第一个制表符(\t)之前的所有内容(十六进制),最后一个字段将包括其他所有内容。
我尝试了多个正则表达式,最接近解决这个问题的是:
echo -e "ffffffff81000000: 48 8d 25 51 3f 60 01\tleaq asdf asdf asdf" \
| awk '{split($0,field,/([:])([ ])|([\t])/); \
print "length of field:" length(field);for (x in field) print field[x]}'
但是结果不包括冒号 - 我也不确定我写的正则表达式是否正确:
length of field:3
ffffffff81000000
48 8d 25 51 3f 60 01
leaq asdf asdf asdf
提前致谢。