用awk和分隔符拆分字符串
我有日志文件,如:
1:: 10:: 127.0.0.1 172.17.1.1
我希望awk将字符串拆分为:: delimiter上的列。 就像是 :
awk {print$1}
结果:
1
和
awk {print$2}
结果:
10
和
awk {print$3}
结果:
127.0.0.1 172.17.1.1
我不知道如何用分隔符分隔awk ::。
您可以使用-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
变量存储行号。 例如,使用::
as field-separator考虑您的文件
$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