概要
知らなかったのでメモメモ。less で tail -f
の代わりが出来るという話です。
man 見てみる
man 見てみたら、普通に書いてありますね。。ちゃんと読まないとダメですね。。
$ man less ...割愛... F 前方にスクロールし、ファイルの終端に達しても読み続ける。 通常このコマンドは、既にファイルの終端に達している場合に使われる。 閲覧中に大きくなり 続けるファイルの末尾をモニターすることができる ("tail -f" コマンドと同じような動作をする)
試してみる
とりあえず、ログみたいに出力し続ける状態を以下で代用
$ i=0; while true; do printf "helloworld-%03d\n" ${i}; sleep 0.5; i=`expr ${i} + 1`; done > hello.txt
別のターミナル開いて、以下を実行
$ less +F hello.txt
すると以下のように、tail -f
と同じような感じで出力を追いかけてくれます。
helloworld-74 helloworld-75 helloworld-76 helloworld-77 helloworld-78 helloworld-79 helloworld-80 helloworld-81 helloworld-82 helloworld-83 helloworld-84 helloworld-85 helloworld-86 helloworld-87 helloworld-88 helloworld-89 helloworld-90 helloworld-91 helloworld-92 helloworld-93 Waiting for data... (interrupt to abort)
下に interrupt to abort
ってあるので、Ctrl-c
すると
helloworld-106 helloworld-107 helloworld-108 helloworld-109 helloworld-110 helloworld-111 helloworld-112 helloworld-113 helloworld-114 helloworld-115 helloworld-116 helloworld-117 helloworld-118 hello.txt (END)
って感じで出力が止まります。
何が便利って、tail -f
だと、そのままシェルに返ってきますが、less +F
だと、このまま less で開いた状態になってくれるので、ここから移動も出来るし、検索もそのまま出来ます。これはいいですねー。
別のやり方
上では less コマンドに +F
を付けていますね。オプションだったらハイフンじゃね?って思ったりしますが、これは「コマンド」を指定しています。「コマンド」ってのは、less でファイル開いた後に実行できるアクションのことです。
よく、less で開いた後に スペース 押してページ送りしたりしますね。あれもコマンドです。
コマンドラインから less を起動する時点でコマンドを指定して実行したい場合は +
の後ろにコマンドを付けて実行します。
なので、上のコマンドでは、 less +F
って形で実行しています。
てことは、普通に less hello.txt
って実行して開いた後で、F
を押しても同じことになります。
やってみると、Fを押すとtail -f
モードになって、Ctrl-c
押すと元の状態に戻って、またF
押すとtail -f
モードになります。
補足:less で いきなり末尾を表示したい場合
less コマンドでファイルを開いたりすると、通常はファイルの先頭から表示してくれます。
んで、ログとかになると、見たいのはファイルの末尾あたりの場合が多いです。
そういうときは、+G
をつけると、いきなり末尾から表示してくれます。
$ less +G hello.txt
ちなみに、+G
を指定しない状態で、less で開いた場合は G
って打てば同じことになります。
補足:less で 行番号を表示したい場合
行番号が見たい場合は、-N
オプションを付けます。
$ less -N +F hello.txt
とすると、行番号つきで tail -f 状態となります。これも便利です。
ちなみに、-N
を指定しない状態で、 less で開いた場合は -N
って打てば同じことになります。
行番号を非表示にする場合は -n
って打ちます。
補足:もっとわかりやすくて素晴らしい記事
Qiita に 以下のような素晴らしい記事がありました。とても勉強になりました。記事書かれた方に感謝 m( )m
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場