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

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

PowerShellでhead,tail相当の処理を行う

LinuxやUNIXを利用している方であれば特に説明する必要も無いが、UNIX系OSにはhead、tailという「最初(最後)から数えて◯行分を出力する」というコマンドが存在する。
特にtailは、fオプションと組み合わせてログの監視を行う際に非常に重宝する。

これと同じことをPowerShellで行う場合は、以下のようにする。

1.headコマンドの場合

headコマンドに相当する操作をPowerShell2.0で行う場合は、以下のようにする。

(出力させるコマンド)[0..出力させたい行数-1]

実際に実行した際の例が以下。頭から数えて5行出力させている。

PS...