作者liwmewmew (如果大海能够)
看板Linux
标题[问题] 抓取档案里数行连续的文字区块
时间Mon Jun 17 14:14:54 2013
最近在写一只可以抓取档案内容的SHELL
档案内容大概是{
名字: 李大仁
户籍: 台北
地址: ~!@#$%^&*
电话: ~!@#$%^&*
兴趣: ~!@#$%^&*
备注1:
名字: 程又青
户籍: 台北
地址: ~!@#$%^&*
电话: ~!@#$%^&*
兴趣: ~!@#$%^&*
名字: 李大仁
户籍: 高雄
地址: ~!@#$%^&*
电话: ~!@#$%^&*
兴趣: ~!@#$%^&*
备注1:
备注2:
}
可以看到里面有3个人的资料
而我希望透过前两笔(名字与户籍)
就可以把某人的整块资料捞出来
人与人之间的资料区块有一行空白行隔开
任何一个人的资料区块长度不一定
而我想捞出
名字: 李大仁
户籍: 高雄
地址: ~!@#$%^&*
电话: ~!@#$%^&*
兴趣: ~!@#$%^&*
备注1:
备注2:
这样一块
也就是第一行李大任并且第二行是高雄,这样才是我要的
不想把台北那个李大仁的资料捞出来
我本想说用grep,但grep似乎都是以行为单位
而且行与行之间都是独立的
更难以介定出往下一块区块的资料
虽然最後我是用C语言写一只程式来解决这问题了
但很好奇不知道SHELL是否有比较进阶的技巧可以解决这问题?
照理说SHELL的效率会比较好 是吗?
真的非常谢谢各位
--
有种熟悉总在你心里深处、眼光余角出现
越是追求越是千里寻不着
日覆一日,渐渐的也就淡忘
实际却如影随行、无声无息的埋藏在潜意识里‧‧‧
也许夜深人静时又会不经意的轻敲你心房
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.254.51
1F:→ dearlove:awk? 06/17 14:20
2F:→ noonee:grep -A? 06/18 01:24