用逗号分隔文件的第n列替换空​​格分隔文件的第一列

时间:2014-10-19 01:46:42

标签: linux command-line awk ubuntu-12.04

我有一个空格分隔的文件,如下所示:

-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 个答案:

答案 0 :(得分: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列的内容存储在关联数组中。

答案 1 :(得分:1)

使用cut

在bash中

pasteprocess substitutions

paste -d " " <(cut -d, -f4 file2) <(cut -d " " -f2 file1)
-1 'xyz
-1 'dfg
1 'frt
-1 'pop