我有两个文本文件。
我的第一个文本文件如下所示:
2 3
5 9
第二个文本文件如下所示:
4 2 3
3 6 2
1 5 9
我正在尝试分隔第二个文件中第2列和第3列的值与第一个文本文件的第1列和第2列中的值相同的行。
我正在尝试这个脚本,但我目前没有成功,输出为空。
set a=`awk '{print $1}' 1.txt`
set b=`awk '{print $2}' 2.txt`
set cc=1
foreach ii ($a)
awk '($2==$a[$cc] && $3==$b[$cc]) {print$0}' 2.txt >> output.txt
@ cc++
end
有人可以帮我吗?
答案 0 :(得分:1)
awk '{ sub(/\r/, ""); } NR == FNR { a[$1 FS $2]++; next } $2 FS $3 in a' file1 file2
输出:
4 2 3
1 5 9
答案 1 :(得分:-1)
您可以使用grep -f
:
grep -f 1.txt 2.txt
4 2 3
1 5 9
修改:如果您只想在$2
中匹配$3
和2.txt
,请使用此awk
命令:
awk 'FNR==NR {a[$1]=$2;next} a[$2]==$3' 1.txt 2.txt
4 2 3
1 5 9