2011年6月25日土曜日

テキストファイルから指定した行範囲を抜き出すコマンド

テキストファイルである行からある行までを抜きだしたかった。
さらに、毎回コマンド打つのも面倒なので、ついでにシェルスクリプトを書くと便利。


やりたいことは、

  • #begin を含む行から #endを含む行までを抜き出したい

以下がそのコマンドになる。


input.dat から output.dat  #begin から #end までをコピーするコマンド
sed -n "/#begin/,/#end/p" input.dat output.dat
また、#begin を含む行から #N 行抜き出すと分かってるなら
grep -A#N '#begin' input.dat > output.dat
で抜き出せるはず。