awk 一特殊用法 - Linux

Lydia avatar
By Lydia
at 2013-02-22T04:09

Table of Contents

※ 引述《Sizemore24 (Going deep center)》之銘言:
: 請教各位,現有一檔案,如下格式:
: 111/222
: aaa
: bbb
: ccc
: ccc
: ccc
: 111/333
: aaa
: bbb
: ccc
: ccc
: 111/444
: aaa
: bbb
: 111/555
: aaa
: bbb
: ccc
: 現在想用 awk,達成一效果:
: 「數字/數字」 當要取得的區塊的頭,「數字/數字前最後一個 ccc」 為區塊的尾,
: 此為一完整區塊,印出來。
: 若只有「數字/數字」,卻沒有 ccc 行,就視為不完成區塊,不印。
: 所以印出來會是
: 111/222
: aaa
: bbb
: ccc
: ccc
: ccc
: 111/333
: aaa
: bbb
: ccc
: ccc
: 111/555
: aaa
: bbb
: ccc
: 剛試了好多方法,但判斷何處為區塊內最後一個 ccc?一直有問題,
: 所以想請問大家,有沒有什麼可行的解法?感謝。
: p.s. 願贈送 10000 批幣當感謝最佳解的小心意,雖然很微薄。

試著土法練鋼:

{
test[NR] = $0
if(NR == 1){flag=1}
if ((NR !=1) && ($0 ~ /[0-9][0-9]*\/[0-9][0-9]*/)){
x=NR-1
if(test[x] ~ /ccc/){
for(i=flag;i<NR;i=i+1)
print test[i]
}
flag=NR
}
}
END{
x=NR
if(test[x] ~ /ccc/){
for(i=flag;i<=NR;i=i+1)
print test[i]
}
}


--
Tags: Linux

All Comments

Susan avatar
By Susan
at 2013-02-22T12:53
可以用了,感謝,小心意奉上。

awk 一特殊用法

Genevieve avatar
By Genevieve
at 2013-02-21T23:14
請教各位,現有一檔案,如下格式: 111/222 aaa bbb ccc ccc ccc 111/333 aaa bbb ccc ccc 111/444 aaa bbb 111/555 aaa bbb ccc 現在想用 awk,達成一效果: 「數字/數字」 當要取得的區塊的頭,「數字/數字前最後一個 cc ...

pcmanx-gtk2 1.2 released

Poppy avatar
By Poppy
at 2013-02-21T21:50
Version 1.2 - February 2013 Feature: Use consistent naming: PCManX Allow users to search selected text through Web search engine Handle malformed UR ...

Ubuntu12.04下灌xfce、kde更新問題

Lydia avatar
By Lydia
at 2013-02-21T20:34
※ 引述《blackeagle (愛上天使)》之銘言: : 抱歉其實要問兩個問題不過標題欄裝不下所以只寫了主要問題^^and#34; : 小弟最近對支援Ubuntu的各家desktop都很有興趣 : 所以一口氣把KDE、xfce都裝了起來。 : 因為只是想體驗不同桌面所以分別是用 : sudo apt-get ...

Ubuntu12.04下灌xfce、kde更新問題

Xanthe avatar
By Xanthe
at 2013-02-21T17:25
抱歉其實要問兩個問題不過標題欄裝不下所以只寫了主要問題^^and#34; 小弟最近對支援Ubuntu的各家desktop都很有興趣 所以一口氣把KDE、xfce都裝了起來。 因為只是想體驗不同桌面所以分別是用 sudo apt-get install kde-full sudo apt-get instal ...

ubuntu 安裝套件

Oliver avatar
By Oliver
at 2013-02-21T13:11
請問要安裝ftp套件的時候發生錯誤,要如何解決?謝謝! rootatubuntu:/var/lib# sudo apt-get install pure-ftpd 正在讀取套件清單... 完成 正在重建相依關係 正在讀取狀態資料... 完成 下列套件將會被【移除】: pure-ftpd-mysql 下列 ...