📅  最后修改于: 2023-12-03 15:22:09.528000             🧑  作者: Mango
AWK是一种强大的文本分析工具,它可以对文本进行多种操作,其中包括打印文本文件中的指定列。使用AWK打印来自多个文件的列可以非常方便地批量处理数据。
以下是使用AWK打印来自多个文件的列的基本语法:
awk '{print <column>}' <filename1> <filename2> ...
其中,<column>
代表要打印的列号,可使用数字或变量来表示。<filename1>
、<filename2>
等代表要处理的文件名,可以同时处理多个文件。
例如,我们要打印文件file1.txt
和file2.txt
中的第2列,可以使用以下命令:
awk '{print $2}' file1.txt file2.txt
如果要打印的列不是固定的,可以使用变量来代替列号。使用-v
选项可以将变量传递给AWK程序。
例如,我们想要打印文件file1.txt
和file2.txt
中的第<col>
列,可以使用以下命令:
awk -v col=<col> '{print $col}' file1.txt file2.txt
如果要处理的文件非常多,我们可以使用通配符来代替文件名。
例如,我们要打印所有以.txt
结尾的文件中的第2列,可以使用以下命令:
awk '{print $2}' *.txt
默认情况下,AWK会将结果输出到标准输出。如果要将结果输出到文件中,可以使用重定向符号>
。
例如,我们要将文件file1.txt
和file2.txt
中的第2列输出到文件result.txt
中,可以使用以下命令:
awk '{print $2}' file1.txt file2.txt > result.txt
假设我们有以下三个文件:
$ cat file1.txt
name,age
Tom,18
Jack,20
Lily,19
$ cat file2.txt
name,score
Tom,90
Jack,85
Lily,92
$ cat file3.txt
name,gender
Tom,M
Jack,M
Lily,F
我们要将所有文件中的name
和age
列打印出来,可以使用以下命令:
$ awk -F ',' '{print $1,$2}' file1.txt file2.txt file3.txt
name age
Tom 18
Jack 20
Lily 19
name score
Tom 90
Jack 85
Lily 92
name gender
Tom M
Jack M
Lily F
在上面的命令中,-F
选项指定了列之间的分隔符。print $1,$2
表示打印第1列和第2列,用空格隔开。