首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

帮忙看一个shell如何写

2013-01-22 
帮忙看一个shell怎么写我的文件里的数据是这样的99998|Stacy|Huang|StacyHuang@gmail.com|07141985|2058|7

帮忙看一个shell怎么写
我的文件里的数据是这样的
99998|Stacy|Huang|StacyHuang@gmail.com|07141985|2058|7013062718|STU
10020|Jame|Sccot|JameSccot@gmail.com|12271972|3680|7012220656|STU
10020|Jame|Sccot|JameSccot@gmail.com|12271972|3680|7012220656|FAC
......

需求是如果存在前面字段是相同的,最后一个是不同的记录时,只要是FAC的记录,但有的时候只有末尾是STU的或只有FAC的记录,并没有前面重复的记录比如第一条,如何用SHELL脚本获得所有的数据

感觉用awk可以获取$8的值但不知道怎么和前一行该列的值比较。没事思路。麻烦高手给给思路也好。
[解决办法]

[nicenight@CSDN ~]$ awk -F'
[解决办法]
' 'BEGIN{last_flag="FAC"} {if ($NF == "FAC") print $0; if (last_flag == "FAC" && last_id == $1) next;if (last_flag != "FAC" && last_id != $1) print last_line; last_line=$0; last_id=$1; last_flag=$NF}END { if (last_flag != "FAC") print last_line;}' <(sort -t'
[解决办法]
' -n -k1,1 file) 
10020
[解决办法]
Jame
[解决办法]
Sccot
[解决办法]
JameSccot@gmail.com
[解决办法]
12271972
[解决办法]
3680
[解决办法]
7012220656
[解决办法]
FAC
78881
[解决办法]
Test
[解决办法]
001
[解决办法]
Test001@nomail.cn
[解决办法]
1356489
[解决办法]
5689
[解决办法]
701356789
[解决办法]
FAC
99998
[解决办法]
Stacy
[解决办法]
Huang
[解决办法]
StacyHuang@gmail.com
[解决办法]
07141985
[解决办法]
2058
[解决办法]
7013062718
[解决办法]
STU

热点排行