Linux 在给定条件下,使用AWK将一个文件中的列添加到另一个文件中
首先,谢谢你的帮助。我有两个文件是Linux 在给定条件下,使用AWK将一个文件中的列添加到另一个文件中,linux,bash,awk,Linux,Bash,Awk,首先,谢谢你的帮助。我有两个文件是 1 10 2 20 3 30 4 10 5 20 及 我想使用AWK过滤两个文件,因此如果第一个文件中的$2等于第二个文件中的$2,则输出将添加一个与给定条件匹配的新列: 1 A 10 2 B 20 3 C 30 4 A 10 5 B 20 我尝试过以下代码: awk 'FNR==NR{a[NR]=$0;next}{$2=a[FNR]}1' letters.txt numbers.
1 10
2 20
3 30
4 10
5 20
及
我想使用AWK过滤两个文件,因此如果第一个文件中的$2等于第二个文件中的$2,则输出将添加一个与给定条件匹配的新列:
1 A 10
2 B 20
3 C 30
4 A 10
5 B 20
我尝试过以下代码:
awk 'FNR==NR{a[NR]=$0;next}{$2=a[FNR]}1' letters.txt numbers.txt >> combined.txt
问题是,代码只替换了我想要替换的另一列中的一列,并且该列与我上面给出的条件匹配。另外,我想将新列放在number.txt文件的列之间,以下内容可能适合您:
awk '
NR == FNR { m[$2]=$1; next }
$2 in m { $3=m[$2] }
1
' letters.txt numbers.txt
非常感谢,但您知道如何将其放入文件1中的$2中,并将文件1中的$2替换为$3吗?
awk '
NR == FNR { m[$2]=$1; next }
$2 in m { $3=m[$2] }
1
' letters.txt numbers.txt