如何比较linux中多个文件中的两列与awk

时间:2013-01-10 03:32:16

标签: linux awk

我有这段代码

[motaro@Cyrax ]$ awk '{print $1}' awk1.txt awk2.txt
line1a
line2a
file1a
file2a

显示两个文件中的ccolumns

如何分别找到$1(of file 1)$1(of file2)

3 个答案:

答案 0 :(得分:1)

根据上述评论,对于三个或更多文件,请设置条件:

FILENAME == ARGV[1]

例如:

awk 'FILENAME == ARGV[1] { print $1 } FILENAME == ARGV[2] { print $1 } FILENAME == ARGV[3] { print $1 }' file1.txt file2.txt file3.txt

或者,如果你有一个文件:

将条件更改为:

FILENAME == "file1.txt"

例如:

awk 'FILENAME == "file1.txt" { print $1 } FILENAME == "file2.txt" { print $1 } FILENAME == "file3.txt" { print $1 }' *.txt

您可能还想了解有关变量ARGC and ARGV的更多信息。如果有任何需要更多解释,请告诉我。欢呼声。

答案 1 :(得分:0)

awk 'NR==FNR{a[FNR]=$0;next} {print a[FNR],$0}' file_1 file_2

找到here

答案 2 :(得分:0)

我不确定你需要什么。 您可能需要预定义变量:FILENAME

awk '{print $1,FILENAME}' awk1.txt awk2.txt

以上命令将输出:

line1a awk1.txt 
line2a awk1.txt 
file1a awk2.txt 
file2a awk2.txt