ターミナルでテキストファイルを開き、変更されるたびに自動更新する


15

テキストファイルが変更されるたびにインスタントオートリフレッシュでターミナルでテキストファイルを開くにはどうすればよいですか?

で調べましたvim:set autoreadvim更新をトリガーするには、基本的な入力(内部のキープレスなど)が必要です。

自動更新をハンズフリーにしたい。これを行うためのハックはありますか?

私はCrunchbang 11を使用していますが、ターミナルにはかなり慣れています。


何がいいの?このファイルは何ですか?ログの場合、通常は下部に新しい行が追加されているので、だけを使用できますtail -f $file
jirib 2013年

具体的には、下に新しい行を追加するだけでなく、別のテキストファイルを書き出すPythonスクリプトを書いています。そのテキストファイルを監視します。
2013年

inotify .......?
jirib 2013年

に慣れていませんinotify。調べてみると、Cプログラミングでアクセスする必要のあるAPIですが、すぐには利用したくありません。シェルコマンドソリューションを探しています。
キット

1
コマンドラインから使用できる一連のツールがあり、通常はと呼ばれinotify-toolsます。これらは、カーネルに組み込まれたinotifyと呼ばれる機能を使用します。イベントに基づいてファイルが操作されるたびに、操作可能なinotifyを介して送信されます。多くのprog。言語。Python、Perlなどのライブラリには、Inotify APIをラップするライブラリがあります。ウィキペディアのpgを参照してください:en.wikipedia.org/wiki/Inotify
slm

回答:


25

これにより、毎秒1回ファイルが表示されます。

watch -n 1 cat file

1
これは私が探しているものです。ありがとう!私はそれをさらに拡張しましたwatch -tpcn 1 pygmentize -g filename
キット

@Kitを注意深く使用するとwatch -g期待どおりに機能しません。
terdon

@terdon、-gスイッチは実際にですpygmentize。とにかく、警告をありがとう。
2013年

ファイルの内容が1ページを超える場合、これを使用すると、画面をスクロールしてファイルの残りの内容を確認することはできません。
CodyChan 2018年

1
なぜwatch -n 1 tail fileですか?
Varun

7
tail -f /var/log/syslog

ファイルに追加されたsyslog更新を表示します。


これは、追加された行が正しいことを示していますか?OPは完全な更新が必要です。
Sean256

git-bashを搭載したWindowsでも動作します
David

3

watch他の答えが示唆するように私は使用しますが、Unixなどのシェルによって提供されるビルディングブロックを使用して、一見複雑に見える問題にどのように対処できるかを示すだけです。whileループは、ループを実行する簡単な方法です。

$ while [ 1 ]; do clear; date; cat <afile>; sleep 1 ;done

$ while [ 1 ]; do clear; date; cat sample.txt; sleep 1 ;done
Fri Nov 15 09:17:39 EST 2013
1
2
3
4
5

画面がクリアされ、1秒後にこれが表示されます。

Fri Nov 15 09:17:40 EST 2013
1
2
3
4
5

2

コメントで示唆されているように、inotifyやり過ぎですが使用することもできます。はるかに簡単なのは使用することwatchです。これを行う1つの方法を次に示しますinotify

  1. inotify-toolsパッケージをインストールする

    sudo apt-get install inotify-tools
    
  2. inotifywatchファイルの変更を確認するために使用します。ループで実行しcat、変更が検出された場合はファイルを実行します(そのgrepため、文字列はtotal)です。

    while true; do 
      inotifywatch -e modify -t 1 kk 2>/dev/null | grep -q total && 
      echo "$(date;cat kk)"; 
    done
    

to -q(または--quiet)を渡すgrepと、「total」で一致した行が無音になります。
FichteFoll 2018

@FichteFoll良い点(削除する前に見た場合、以前のコメントは無視してください。遅くなっていました)。ありがとう、編集。
terdon

0

watch(1)本当に便利なツールです。[1]

catただし、使用はお勧めしません。

代わりに、headまたはtailを使用して、ファイルの先頭または末尾を表示する必要があるかどうかを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.