2012-03-07 2 views
0

私の形式はデータがあります。解析の/ proc/PID/smaps出力

START 
... 
... 
END 
START 
... 
... 
END 

は、私はいくつかのデータ解析をしたいので、STARTEND間に線を抽出したいと思いますが。今問題は、データをチャンクで抽出することです。例えば、 STARTENDの最初のペアの間でデータを抽出し、分析してから2番目のペアを作成し、次に3番目のペアを作成します。私はこれを行うためにsedを探索していました。これを達成するためにsed(または他のツール)を使用するにはどうすればよいですか?

+2

あなたには、いくつかのサンプルデータとあなたの期待される出力を含めるように自分の投稿を編集する場合は、より良い答えを得るでしょう。 Sedが少し助けてくれるかもしれませんが、awkや他のプログラミング言語を使う方が良いでしょう。がんばろう。 – shellter

答えて

0

これはあなたのために働くかもしれない:

sed '/START/,/END/{/START/{h;d};H;/END/{g;s/\.\.\./foo/gp};d}' file 
START 
foo 
foo 
END 
START 
foo 
foo 
END 

またはこの:

awk '/START/{p=1;n++};p{if(n==1)sub(/\.\.\./,"foo");if(n==2)sub(/\.\.\./,"bar");print};/END/{p=0}' file 
START 
foo 
foo 
END 
START 
bar 
bar 
END 
関連する問題