用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