将第一列附加到文件

将第一列附加到文件

我有一个如下所示的文件:

Heading1,Heading2
value1,value2

另一种看起来像这样:

Row1
Row2

我怎样才能将两者结合起来成为:

Row1,Heading1,Heading2
Row2,value1,value2

有效地在第一列的位置附加一列?

答案1

职位paste

paste -d, f2.txt f1.txt
  • -d,将分隔符设置为,(而不是制表符)

awk

awk 'BEGIN {FS=OFS=","} NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' f2.txt f1.txt 
  • BEGIN {FS=OFS=","}将输入和输出字段分隔符设置为,

  • NR==FNR {a[NR]=$0; next}:对于第一个文件 ( f2.txt),我们将记录号保存为关联数组 ( a) 的键,其值是相应的记录

  • {print a[FNR], $0}a:对于第二个文件,我们只是用前置的记录编号键的值打印记录


例子:

% cat f1.txt             
Heading1,Heading2
value1,value2

% cat f2.txt             
Row1
Row2

% paste -d, f2.txt f1.txt
Row1,Heading1,Heading2
Row2,value1,value2

% awk 'BEGIN {FS=OFS=","} NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' f2.txt f1.txt 
Row1,Heading1,Heading2
Row2,value1,value2

答案2

另一个简短的awk方法。

awk '{getline x<"file1"; print $0","x}' file2
  • getline x<"file1"读取整行文件1并坚持到X多变的。
  • print $0","x打印整行文件2通过使用$0thenx这是保存的行文件1之间用逗号。

相关内容