Chinaunix
标题:
两文件处理
[打印本页]
作者:
dahaoshanhe
时间:
2013-01-15 10:58
标题:
两文件处理
读取文件2第一个字段放到文件1的前面
想读取文件2的第一个字段,然后放到文件1的前面。
file1:
45 23
45 23
45 23
23 09
23 09
10 87
复制代码
file2:
44
52
37
复制代码
输出结果:
44 45 23
45 23
45 23
23 09
23 09
10 87
52 45 23
45 23
45 23
23 09
23 09
10 87
37 45 23
45 23
45 23
23 09
23 09
10 87
复制代码
作者:
seesea2517
时间:
2013-01-15 11:27
[seesea@UC ~]$ awk 'NR==FNR{a[index1++]=$0}; NR!=FNR{b[index2++]=$0}; END{for(i=0;i<index1;i++){for(j=0;j<index2;++j){print a[i] OFS b[j]; a[i]=" "}}}' 2.txt 1.txt
44 45 23
45 23
45 23
23 09
23 09
10 87
52 45 23
45 23
45 23
23 09
23 09
10 87
37 45 23
45 23
45 23
23 09
23 09
10 87
[seesea@UC ~]$ awk '{while(getline line < "1.txt"){ print $0 OFS line; $0 = " "}; close("1.txt")}' 2.txt
44 45 23
45 23
45 23
23 09
23 09
10 87
52 45 23
45 23
45 23
23 09
23 09
10 87
37 45 23
45 23
45 23
23 09
23 09
10 87
复制代码
作者:
asdf2110
时间:
2013-01-15 11:44
awk 'NR==FNR{a[m++]=$0;next}{b[n++]=$0}END{for(i=0;i<m;i++){f=1;for(j=0;j<n;j++) {if(f){print a[i],b[j];f=0;}else{print " "b[j]}}}}' f2 f1
复制代码
作者:
love_shift
时间:
2013-01-15 11:44
awk 'NR==FNR{i++;a[i]=$0;next;}{j++;b[j]=$0}END{for(c=1;c<=j;c++){for(k=1;k<=i;k++)if(k==1)print b[c],a[k];else print FS,"",a[k]}}' file1 file2
复制代码
水平有限,有点长了~
作者:
07101060407
时间:
2013-01-15 12:42
cat b|while read i;do echo -ne $i" ";sed '2,$s/^/ /' a;done
复制代码
水平有限,呵呵
作者:
07101060407
时间:
2013-01-15 12:43
突然发现楼上几位大牛都用的awk
作者:
yestreenstars
时间:
2013-01-15 14:07
本帖最后由 yestreenstars 于 2013-01-15 14:08 编辑
awk 'NR==FNR{a[NR]=$0;next}{print $0,a[1];gsub(/./," ");for(i=2;i<=length(a);i++)print $0,a[i]}'
复制代码
PS:楼上的,如果b文件中的数字不是十位数,而是百位数,那格式也要跟着变化啊,你们懂我的意思吗?
作者:
wh7211
时间:
2022-06-09 18:21
cat 1
45 23
45 23
45 23
23 09
23 09
10 87
cat 2
44
52
37
370
awk 'FILENAME==ARGV[1]{a=a?a"\n-"$0:$0;next}{for(i=1;i<=length($0);i++){b=b?b" ":" "};c=gensub("-",b,"g",a);print $0,c;b=""}' 1 2
awk 'FILENAME==ARGV[1]{a[NR]=$0;next}{for(i=1;i<=length($0);i++){b=b?b" ":" "};for(i=1;i<=length(a);i++){print i==1?$0:b,a[i]};b=""}' 1 2
输出结果:
44 45 23
45 23
45 23
23 09
23 09
10 87
52 45 23
45 23
45 23
23 09
23 09
10 87
37 45 23
45 23
45 23
23 09
23 09
10 87
370 45 23
45 23
45 23
23 09
23 09
10 87
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2