1
merlin852 2013-10-24 16:13:38 +08:00
awk '/key=a/{a=$1;next}{if($1==a)print $2}'
|
2
ry_wang 2013-10-24 16:17:18 +08:00
awk '{ split($1,x,"="); gsub("]","",x[2]); ID=x[2]; ARRAY[ID]=ARRAY[ID]" "$2 } END {for(i in ARRAY) print i" "ARRAY[i]}' hello.txt
ARRAY这个数组楼主随意处理了 |
3
e1443367 2013-10-24 16:58:14 +08:00
复杂些的操作,更适合由表达能力更强的脚本语言做,比如python
|
4
sykp241095 2013-10-24 17:29:26 +08:00
cat datafile | sort -k1 | awk '$1==o{print v, $0}{o=$1;v=$0}'
|
5
wang2191195 2013-10-24 17:37:27 +08:00
其实你只要把awk脚本写在文件里面 你就会发现好处理多了
|
6
bjtugun 2013-10-24 18:06:22 +08:00
join命令,记得感谢我:)
|
8
rrfeng 2013-10-24 21:38:31 +08:00
顺序很关键。
|
9
plprapper 2013-10-24 21:51:19 +08:00
awkjoin(){
sep=$1 ia=$2 ib=$3 fap=$4 fbp=$5 all='$0' awk -F"${sep}" "NR==FNR{map[$ia]=$all;}NR>FNR{map[$ib]=map[$ib] \"\002\" $all;}END{for(line in map){print map[line]}}" $fap $fbp } 酌情自己修正 |
10
iptux 2013-10-24 22:57:36 +08:00
数据文件为什么不是长成这个样子
[id=123] a=aa [id=456] b=bb [id=789] c=cc |