linux a文件第2列匹配b文件第3列,并输出a文件中第1,2列,与b文件中对应第3,4列到c文件中
时间: 2024-02-13 07:59:41 浏览: 148
可以使用awk命令来实现这个需求,具体的命令如下:
```
awk 'NR==FNR{a[$3]=$4;next} ($2 in a) {print $1,$2,a[$2],$4}' b.txt a.txt > c.txt
```
其中,b.txt是b文件的文件名,a.txt是a文件的文件名,c.txt是输出结果保存的文件名。该命令的作用和上一个问题中的命令一样,只不过最后使用重定向符号将输出结果保存到c.txt文件中。
相关问题
linux a文件第2列匹配b文件第3列,并输出a文件中对应第1列与b文件中对应第4列
你可以使用 `awk` 命令来实现这个功能。假设你要将 `a.txt` 文件中第二列的内容与 `b.txt` 文件中第三列匹配,并输出 `a.txt` 文件中对应第一列及 `b.txt` 文件中对应第四列,可以使用以下命令:
```
awk 'FNR==NR{a[$3]=$4;next}($2 in a){print $1,a[$2]}' b.txt a.txt
```
该命令的含义是,首先读取 `b.txt` 文件中第三列到一个数组 `a` 中,以第三列内容为键,第四列内容为值。然后读取 `a.txt` 文件,如果 `a.txt` 文件中的某一行的第二列在数组 `a` 中,则输出该行的第一列和数组 `a` 中对应的值,即 `b.txt` 文件中对应的第四列。
linux a文件第2列匹配b文件第3列,并输出a文件中第1,2列,与b文件中对应第3,4列
可以使用awk命令来实现这个需求,具体的命令如下:
```
awk 'NR==FNR{a[$3]=$4;next} ($2 in a) {print $1,$2,a[$2],$4}' b.txt a.txt
```
其中,b.txt是b文件的文件名,a.txt是a文件的文件名。该命令的作用是,把b文件的第3列和第4列存储到一个数组a中,然后遍历a文件,如果a文件的第2列在数组a中存在,就输出a文件的第1列、第2列和数组a中对应的值,以及b文件的第4列。
阅读全文