我有如下日志文件:
1::
10::
127.0.0.1
172.17.1.1
我希望 awk 根据 :: 分隔符将字符串拆分为列。例如:
awk {print$1}
结果:
1
和
awk {print$2}
结果:
10
和
awk {print$3}
结果:
127.0.0.1
172.17.1.1
我不知道如何使用带分隔符 :: 的 awk 进行拆分。
答案1
您可以使用选项设置字段分隔符-F
。在终端中使用以下命令,
$ awk -F "::" 'NR==1 {print $1}' logfile.txt
1
$ awk -F "::" 'NR==2 {print $1}' logfile.txt
10
$ awk -F "::" 'NR!=1 && NR!=2 {print $1}' logfile.txt
127.0.0.1
172.17.1.1
NR
变量存储行号。例如,考虑你的文件,使用::
作为字段分隔符
$1 $2 $3
NR=1 1
NR=2 10
NR=3 127.0.0.1
NR=4 172.17.1.1
and so on.
如果你使用它.
作为字段分隔符,它将像,
$1 $2 $3 $4
NR=1 1::
NR=2 10::
NR=3 127 0 0 1
NR=4 172 17 1 1