存在file1.txt,其内容如下: H aa 0 0 1 -9 H bb 0 0 2 -9 H cc 0 0 2 -9 存在file2.txt,其内容如下: H aa 0 0 0 -9 asd qwe H bb 0 0 0 -9 fgh rty H cc 0 0 0 -9 jkl uio 现希望根据file1和file2相同的列字符合并文件,要求如下:1.如果两个文件的第二列相同,则将file2的第三列.第四列.第五列.第六列修改为file1对应的第三列.第四列.第五列.第六列内容:2.新文件
a文件为 a a a s s d .怎么把a文件变为 a s d .怎么把a文件变为 a a a s s d 解题方法如下: 解题思路 [root@localhost study]# awk 'NR==FNR{a[$2]++}NR!=FNR&&++b[$2]==1{print $1,$2,a[$2]}' a a1 a 34 s 26 d 1 NR=FNR处理第一个文件a-----> {a[$2]++} a[$2]++相当于a[$2]=a[$2]+1 a[a]=a[a]+1=0+1=
原文件 第一种方法 [root@wxb- jt]# paste -d "," b c d ,q, , ,e, ,r, ,t, [root@wxb- jt]# paste b c d q e r t 默认是tab分割. 第二种方法 [root@wxb- jt]# awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]" "$0;j++}' b c q w e r t
file1. 1 2 2 3 3 4 4 5 5 6 file2. a b b c c d d e e f 需要把file2的第二列合并到file1,使File1并成三列. 第一种方法:paste paste -d " " file1 file2 第二种方法:awk awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]" "$0;j++}' file1 file2