bashでtailとheadを使ってファイルからn文字~x文字の範囲を抜き出す

ちょっとした処理のために、bashでファイルから改行を含むn文字~x文字分の範囲を抽出したいなぁと思い、最初はreadで実現しようと思ったのだが、どうも改行を含む文字数となるとうまくいかなかった。
で、tailとheadでとりあえず実現したので、念のため備忘として残しておく。なお、この際改行も文字数として含まれるので注意すること。

cat file | tail -c +$((開始文字数 + 1)) | head -c $((終了文字数 + 1))
Sponsored Links

[root@BS-PUB-CENT7-01 ~]# cat test3.txt
123
456
789
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
YZ
[root@BS-PUB-CENT7-01 ~]# cat test3.txt | tail -c +$((4 +1))
456
789
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
YZ
[root@BS-PUB-CENT7-01 ~]# cat test3.txt | tail -c +$((4 +1)) | head -c $((7+1))
456
789

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*