抓取檔案裡數行連續的文字區塊 - Linux

Table of Contents

最近在寫一隻可以抓取檔案內容的SHELL

檔案內容大概是{
名字: 李大仁
戶籍: 台北
地址: ~!@#$%^&*
電話: ~!@#$%^&*
興趣: ~!@#$%^&*
備註1:

名字: 程又青
戶籍: 台北
地址: ~!@#$%^&*
電話: ~!@#$%^&*
興趣: ~!@#$%^&*

名字: 李大仁
戶籍: 高雄
地址: ~!@#$%^&*
電話: ~!@#$%^&*
興趣: ~!@#$%^&*
備註1:
備註2:

}

可以看到裡面有3個人的資料
而我希望透過前兩筆(名字與戶籍)
就可以把某人的整塊資料撈出來
人與人之間的資料區塊有一行空白行隔開
任何一個人的資料區塊長度不一定

而我想撈出
名字: 李大仁
戶籍: 高雄
地址: ~!@#$%^&*
電話: ~!@#$%^&*
興趣: ~!@#$%^&*
備註1:
備註2:
這樣一塊
也就是第一行李大任並且第二行是高雄,這樣才是我要的
不想把台北那個李大仁的資料撈出來

我本想說用grep,但grep似乎都是以行為單位
而且行與行之間都是獨立的
更難以介定出往下一塊區塊的資料

雖然最後我是用C語言寫一隻程式來解決這問題了
但很好奇不知道SHELL是否有比較進階的技巧可以解決這問題?
照理說SHELL的效率會比較好 是嗎?

真的非常謝謝各位

--
有種熟悉總在你心裡深處、眼光餘角出現
越是追求越是千里尋不著
日覆一日,漸漸的也就淡忘
實際卻如影隨行、無聲無息的埋藏在潛意識裡‧‧‧
也許夜深人靜時又會不經意的輕敲你心房

--

All Comments

Ursula avatarUrsula2013-06-19
awk?
Victoria avatarVictoria2013-06-22
grep -A?