有时候需要简单处理一下文件,用几行shell脚本语句就能搞定,方便快捷,这里记一下,一边下次使用。结合别人的博文和自己的实践,也算原创吧


test1

1

1

1

1

1


test2

2

2

2

2

2


①paste -d "\t" test1 test2

1    2

1    2

1    2

1    2

1    2

-d 分隔符

\t tab水平制表符


②awk 'NR==FNR{a[NR]=$0;nr=NR;}NR>FNR{print a[NR-nr]"\t"$0}' test1 test2

结果同上

打开test1文件,把每行内容($0)存入到a[NR]这个数组中,NR到目前为止记录数(有时候等价于行数);

然后打开test2文件,按行读取test2每行内容($0),打印到屏幕上test1一行内容+分隔符\t+test2一行内容,FNR当前文件中的记录号(有时候等价于行数)

③awk '{getline t2 < "test2";print $0"\t"t2}' test1
获得test2文件的每一行(t2),打印到屏幕上test1一行内容+分隔符\t+test2一行内容