通过忽略带有AWK的行来合并两个文件
我有两个文件: 文件1: 文件2:通过忽略带有AWK的行来合并两个文件,awk,merging-data,Awk,Merging Data,我有两个文件: 文件1: 文件2: hola l m n o p q 现在我想通过忽略文件2的标题将它们合并到一个文件中,如下所示: a 1 2 3 l m n o p q b 1 2 3 c 1 2 3 d 1 2 3 有人知道怎么做吗 $ awk 'NR==FNR{if(NR>1)a[NR-1]=$0;next}{print $0,a[FNR]}' file2 file1 a 1 2 3 l m n o p q b 1 2 3 c 1 2 3 d 1 2 3 简要说明
hola
l m n o p q
现在我想通过忽略文件2的标题将它们合并到一个文件中,如下所示:
a 1 2 3 l m n o p q
b 1 2 3
c 1 2 3
d 1 2 3
有人知道怎么做吗
$ awk 'NR==FNR{if(NR>1)a[NR-1]=$0;next}{print $0,a[FNR]}' file2 file1
a 1 2 3 l m n o p q
b 1 2 3
c 1 2 3
d 1 2 3
简要说明
:在文件2中,省略头并从第二条记录保存到[NR-1]。注意:这也可以在文件2中的行增长时使用NR==FNR{if(NR>1)a[NR-1]=$0;next}
:打印文件1中$0的内容和一个[FNR]的组合。FNR将是文件1中的记录编号打印$0,一个[FNR]
:在文件2中,省略头并从第二条记录保存到[NR-1]。注意:这也可以在文件2中的行增长时使用NR==FNR{if(NR>1)a[NR-1]=$0;next}
:打印文件1中$0的内容和一个[FNR]的组合。FNR将是文件1中的记录编号打印$0,一个[FNR]
- 同样,在不使用awk的情况下也可以获得相同的预期输出
$ cat file1
a 1 2 3
b 1 2 3
c 1 2 3
d 1 2 3
$ cat file2
hola
l m n o p q
$ pr -mtJS' ' file1 <(tail -n +2 file2)
a 1 2 3 l m n o p q
b 1 2 3
c 1 2 3
d 1 2 3
$ paste -d ' ' file1 <(tail -n +2 file2)
a 1 2 3 l m n o p q
b 1 2 3
c 1 2 3
d 1 2 3
$cat文件1
a 12 3
b 1 2 3
c 1 2 3
d 1 2 3
$cat文件2
你好
l m n o p q
$pr-mtJS''file1也可以在不使用awk的情况下实现相同的预期输出
$ cat file1
a 1 2 3
b 1 2 3
c 1 2 3
d 1 2 3
$ cat file2
hola
l m n o p q
$ pr -mtJS' ' file1 <(tail -n +2 file2)
a 1 2 3 l m n o p q
b 1 2 3
c 1 2 3
d 1 2 3
$ paste -d ' ' file1 <(tail -n +2 file2)
a 1 2 3 l m n o p q
b 1 2 3
c 1 2 3
d 1 2 3
$cat文件1
a 12 3
b 1 2 3
c 1 2 3
d 1 2 3
$cat文件2
你好
l m n o p q
$pr-mtJS“”文件1谢谢!它可以工作,但在我的输出中我看到3l。3和l之间没有空格@wara,请看我的修改。这应该是一个介于3和l之间的空格。我已经通过添加“\t”解决了这个问题,这里“=”\t“$0;接下来,谢谢!它可以工作,但在我的输出中我看到3l。3和l之间没有空格@wara,请看我的修改。这应该是一个介于3和l之间的空格。我已经通过添加“\t”解决了这个问题,这里“=”\t“$0;接下来是好的解决方案,好的解决方案。