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

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

tailコマンドで覚えておきたい使い方4個(+1個)

ログを監視する際によく利用するtailコマンド。
以外と、普通に実行するのと「-F」でのリアルタイムでのログ監視以外はあまり知られてないのではなかろうか。

今回は、そんなtailコマンドで覚えているとちょっと役に立つ使い方を紹介する。

1.基本的な使い方

基本的には、以下のようにコマンドを実行することで指定したファイルの末尾から行(デフォルトでは10行)を抽出して表示してくれる。

tail ファイルPATH

[root@test-centos7 ~]# tail /var/log/messages
Jul 20 18:59:15 test-centos7 root:...

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

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

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

1.headコマンドの場合

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

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

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

PS C...

マルチ画面でコマンドを実行させられる「multitail」コマンド

SSHごしに、マルチ画面でtailやコマンドの実行を行えるツール『multitail』というものがあると知ったので試してみることにした。
マルチ画面でtailをかけられるということは、監視などでいくつもTeratermのウィンドウを開かなくてもいいということか…ちょっと便利そう。

1.インストール

まずはインストールから。
以下のコマンドを実行しインストールを行う。

Debian/Ubuntu

sudo apt-get install multitail

RHEL系Linux

yum install multitail

※RHEL系の場合、RPMforgeを有効...