2014-10-19 17 views
0

我有一个空间分隔的文件看起来像:代替空格分隔文件的第一列用逗号分隔的文件的第n列

-1 'xyz 
1 'dfg 
1 'frt 
-1 'pop 

和一个逗号分隔的文件看起来像:

1,-1,1,-1 
-1,-1,1,-1 
1,1,-1,1 
1,-1,1,-1 

是否有一个Linux命令行用一行代码替换第一个文件的第一列与第二个文件中的第n列?举例来说,如果n = 2,新的文件将成为:

-1 'xyz 
-1 'dfg 
1 'frt 
-1 'pop 

回答

2

你可以试试awk命令下面,

$ awk -F'[, ]' 'FNR==NR{a[FNR]=$2; next}{print a[FNR],$2}' file2 file1 
-1 'xyz 
-1 'dfg 
1 'frt 
-1 'pop 

提到要在这里a[FNR]=$2插入列,在我们的案例它将来自文件2的第2列的内容存储在关联数组中。

+0

感谢。如果文件1有一个未知/可变数目为N的列,我将如何修改该一个班轮,并且我想保留所有班轮,仍然只替换第1列? – ADJ 2014-10-20 19:40:45

相关问题