linux 处理csv文件
tmp.csv文件的内容:
类别    字段1    字段2    字段3     字段4
张      张王     100      job       pm
李      李娜     200      sals      am
文      小文     200      depart    sa
张      张王     120      mana      noll
文      小文     210      mini      price
品      钱品     99       enigma    best
李      李娜     190      foot      very
现在我想把与”张王“ 有关的数据放在 tmp1.csv文件中,第一列的类别不要显示,处理后的csv数据位下面的
字段1    字段2    字段3     字段4
张王     100      job       pm
张王     120      mana      noll
现在我想把与”李娜“ 有关的数据放在 tmp2.csv文件中
字段1    字段2    字段3     字段4
李娜     200      sals      am
李娜     190      foot      very
现在我想把与”小文“ 有关的数据放在 tmp3.csv文件中
字段1    字段2    字段3     字段4
小文     210      mini      price
小文     200      depart    sa
现在我想把与”钱品“ 有关的数据放在 tmp4.csv文件中
钱品     99       enigma    best
请问下我该如何处理源tmp.csv文件,我想了好多种,但最终都不是我要的结果,,谢谢各位了!!!!!!!!!!
------解决方案--------------------
这个用AWK +SED就能处理了
GOOGLE AWK分组 即可
------解决方案--------------------
用awk就行了。
例如
Perl code
nawk '$2=="张王" {print $2, $3, $4, $5}' tmp.csv > tmp1.csv
------解决方案--------------------
$1,$2,$3...表示字段1,字段2,字段3...
因此只要一点小改动即可
nawk '$1=="张" {print $2, $3, $4, $5}' tmp.csv > test1.csv
nawk '$1=="文" {print $2, $3, $4, $5}' tmp.csv > test2.csv
如果你要想做成自动提取第一个字段的类别,然后分别输出文件,
就比较复杂,要写个awk脚本才能做到。
awk十分强大,有时间LZ不妨学习下。