切割file1中的列并替换file2中的列

时间:2019-06-03 20:02:23

标签: multiple-columns paste cut multiple-files

我正在尝试用文件2的第3列替换整个列(文件1中的第2列)。我知道如何使用awk对一个文件进行此操作,但是我认为使用cut会更好,因为我的文件超出了数量awk允许的列数(见下文)

文件是用空格分隔的,并且有很多列...但是我只想将文件1的第2列替换为文件2的第3列,并保持其他所有内容不变。

所有行彼此匹配,因此无需重新排列任何内容。

示例文件

文件1

ID X A 2

ID A I 8

文件2

ID E 8 4

ID T 2 4

   awk 'FNR==NR{a[NR]=$3;next}{$2=a[FNR]}1' f2 f1

使用awk和多个文件接收此错误。 awk:超出程序限制:最大字段数= 32767

我认为这样的事情应该是我应该做的...

cut -f3 file2 | paste - 

但是我不知道该如何替换file1中的f2

1 个答案:

答案 0 :(得分:0)

cut -f1 file1 > temp.1
cut -f3 file2 > temp.2
cut -f3- file1 > temp.3post

合并文件以获得最终输出

paste temp.1 temp.3 temp.3post