2012年02月28日

sedで指定範囲の行を抜き出す

 計算機が生成したテキストファイルからデータを抽出するとき、「この行からあの行まで」と範囲を限定したいことがよくある。エディタに読み込める範囲なら手動で取り出すけど、さすがに 1GB 近いファイルを読み込むのはちょっと無謀。こんなときこそフィルタコマンドの出番だが、ついつい手慣れた Perl とか Ruby とかで書こうとするものだから、単純な操作だとかえって手間がかかったりする。sed とか awk とも仲良くなっておかんとな。

% sed -n '/pattern1/,/pattern2/p' # pattern1 を含む行から pattern2 を含む行まで出力 % sed -n '/pattern1/,$p' # pattern1 を含む行から最後まで出力 % sed '/pattern1/q' # pattern1 を含む行まで出力

Posted at 2012年02月28日 00:10:44
email.png