如何使用\'awk\'从文本文件中打印列(按任意顺序)

・2 分钟阅读

我最喜欢使用Unix awk命令从文本文件打印信息列,包括在文本文件中打印列,下面是awk如何工作的例子。

awk打印列的例子

假设你有一个文件叫 foo,内容用空格分隔成了三列数据:

$ cat foo1 2 3
a b c

下面是awk例子:

$ awk '{ print $1 }' foo1
a
$ awk '{ print $2 }' foo2
b
$ awk '{ print $3 }' foo3
c
$ awk '{ print $1, $3 }' foo1 3
a c
$ awk '{ print $3, $1 }' foo3 1
c a

你可以看到,使用awk你可以打印列,并且你可以轻松地重新排序列的顺序。

如果你不熟悉awk,请注意它会自动循环文本文件中的每一行,处理输入文件中每一行的能力是awk的一个很好的特性。

例子显示awk如何在文件上工作,它还可以从Unix管道读取它输入,如下所示:

$ cat foo | awk '{ print $3, $1 }'3 1
c a

在awk中使用字段分隔符

如果需要指定字段分隔符,比如要解析管道分隔的CSV文件,请使用-F选项,如下所示:

awk -F"|" '{ print $4 }' Notes.data

Syq2803 profile image