foo.txt
由
printf("%f \n\n",row1.req_pnttime);
printf("%f \n\n",avinash);
printf("%f \n\n",foo);
printf("%f \n\n",bar);
bar.txt
包含,
foo
bar
foo1
bar1
我想将第一行bar.txt与foo.txt的第一行组合在一个指定的地方。所有行的名称。如下所示,
预期产出:
printf("foo%f \n\n",row1.req_pnttime);
printf("bar%f \n\n",avinash);
printf("foo1%f \n\n",foo);
printf("bar1%f \n\n",bar);
我尝试了下面的内容,但它没有成功。
awk -v FS="\"" -v OFS="\"" 'FNR==NR{a=$0;}{$2=a[FNR]$2}1' bar.txt foo.txt
答案 0 :(得分:4)
你可以试试这个,
sed 'R bar.txt' foo.txt | sed 'N;s/^\(.*\)\(%.*\)\n\(.*\)/\1\3\2/'
<强>测试强>:
sat:~# sed 'R bar.txt' foo.txt | sed 'N;s/^\(.*\)\(%.*\)\n\(.*\)/\1\3\2/'
printf("foo%f \n\n",row1.req_pnttime);
printf("bar%f \n\n",avinash);
printf("foo1%f \n\n",foo);
printf("bar1%f \n\n",bar);
答案 1 :(得分:3)
好的,我发现了问题。一个通过awk,
$ awk -v FS="\"" -v OFS="\"" 'FNR==NR{a[FNR]=$0;next}{$2=a[FNR]$2}1' bar.txt foo.txt
printf("foo%f \n\n",row1.req_pnttime);
printf("bar%f \n\n",avinash);
printf("foo1%f \n\n",foo);
printf("bar1%f \n\n",bar);
答案 2 :(得分:2)
假设文本始终与同一列对齐,您可以这样做:
cut -b1-8 foo.txt > a
cut -b9- foo.txt > b
paste -d '' a bar.txt b