例如:
abc
xyz
123
546
input.txt中:
asdad
asdad
adghf
dfytr
我想在第二列中添加上面的列。预期的输出如下:
output.txt的:
asdad abc
asdad xyz
adghf 123
dfytr 567
答案 0 :(得分:3)
您要查找的命令是paste
而不是awk
。你可以在awk
中做它,但你可能会发现paste
更容易:
pax> cat qq1
asdad
asdad
adghf
dfytr
pax> cat qq2
abc
xyz
123
546
pax> paste qq1 qq2
asdad abc
asdad xyz
adghf 123
dfytr 546
如果您想要分隔符的空格而不是制表符,请使用paste -d' ' qq1 qq2
。
答案 1 :(得分:3)
paste
是最简单的解决方案。这是一个awk示例,不必将整个第一个文件存储在内存中:
awk '{getline second < "example"; printf("%s\t%s\n",$0,second)}' input.txt
答案 2 :(得分:0)
您只能使用bash
exec 4<file2
while read -r line1
do
read -r line2 <&4
echo $line $line2
done < file1
exec 4>&-
答案 3 :(得分:0)
在awk中:
awk 'NR==FNR {x[NR] = $0} NR != FNR {print x[FNR], $0}' col1_file col2_file
虽然使用粘贴可能更好