একটি টার্মিনালে একটি পাঠ্য ফাইল খুলুন এবং যখনই এটি পরিবর্তন করা হয় তখন এটি স্বয়ংক্রিয়ভাবে রিফ্রেশ করুন


15

টার্মিনালে প্রতিবার তাত্ক্ষণিক স্বতঃ-রিফ্রেশ সহ আমি কোনও পাঠ্য ফাইল কীভাবে খুলব?

আমি এর vimসাথে নজর রেখেছি :set autoread, তবে এটি রিফ্রেশটি vimট্রিগার করতে কিছু প্রাথমিক ইনপুট প্রয়োজন (যেমন ভিতরে কীপ্রেস )।

আমি চাই অটো-রিফ্রেশটি হ্যান্ডস-ফ্রি হোক। এটি করতে কিছু হ্যাক আছে?

আমি ক্রাঞ্চবাং 11 ব্যবহার করছি তবে আমি টার্মিনালটিতে বেশ স্বাচ্ছন্দ্য বোধ করছি।


এটা কি জন্য ভাল? এই ফাইলটি সম্পর্কে কি? যদি এটি লগ হয় তবে এটিতে নীচে সাধারণত নতুন লাইন যুক্ত হয় তবে আপনি কেবল ব্যবহার করতে পারেন tail -f $file
jirib

বিশেষত, আমি একটি পাইথন স্ক্রিপ্ট লিখছি যা কেবল নীচে নতুন লাইন যুক্ত না করে অন্য পাঠ্য ফাইলটি লিখে রাখে। আমি সেই টেক্সট ফাইলটি পর্যবেক্ষণ করতে চাই।
কিট

inotify .......?
jirib

আমি এর সাথে পরিচিত নই inotify। এটি সন্ধান করা, এটি সিপি প্রোগ্রামিংয়ের সাথে আমার অ্যাক্সেস করা দরকার এমন একটি এপিআই, যা আমি শীঘ্রই কখনই করতে চাই না to আমি শেল কমান্ড সমাধান খুঁজছি।
কিট

1
কমান্ড লাইন থেকে সাধারণভাবে বলা হয় এমন সরঞ্জামগুলির একটি স্যুট রয়েছে যা আপনি ব্যবহার করতে পারেন inotify-tools। এগুলি কর্নেলের মধ্যে অন্তর্নিহিত নামক একটি বৈশিষ্ট্য ব্যবহার করে। যে কোনও সময় কোনও ইভেন্টের জন্য কোনও ফাইল অভিনয় করার পরে ইনোটিফাইয়ের মাধ্যমে প্রেরণ করা হয় যে আপনি এতে অভিনয় করতে পারেন। অনেক অগ্রগতি। ভাষাগুলির। পাইথন, পার্ল ইত্যাদির মতো লাইব্রেরি রয়েছে যা ইনোটাইফাই এপিআই মোড়ায়। উইকিপিডিয়া পৃষ্ঠা দেখুন: en.wikedia.org/wiki/Inotify
slm

উত্তর:


27

এটি আপনাকে প্রতি সেকেন্ডে একবারে ফাইলটি প্রদর্শন করবে:

watch -n 1 cat file

1
এই আমি খুঁজছি। ধন্যবাদ! আমি এর সাথে আরও প্রসারিত করেছিwatch -tpcn 1 pygmentize -g filename
কিট

@ কিট সাবধান watch -g, আপনি আশা হিসাবে এটি কাজ করে না ।
টেরডন

@ ইটারডন, -gস্যুইচটি আসলে এর জন্য pygmentize। যাইহোক, সতর্কতার জন্য ধন্যবাদ।
কিট

যদি ফাইলের বিষয়বস্তু এক পৃষ্ঠার উপরে থাকে তবে এটি ব্যবহার করে আপনি ফাইলের বাকী বিষয়বস্তু পরীক্ষা করতে স্ক্রিনটি স্ক্রোল করতে পারবেন না।
কোডিচান

1
শুধু কেন নয় watch -n 1 tail file?
বরুণ

8
tail -f /var/log/syslog

ফাইলটিতে যুক্ত হওয়ার সাথে সাথে সিসলগ আপডেটগুলি দেখায়।


এটি সঠিক যুক্ত হওয়ার সাথে সাথে লাইনগুলি দেখায়? ওপিকে সম্পূর্ণ রিফ্রেশ দরকার।
শান 256

উইন্ডোতে গিট-বাশ দিয়েও কাজ করে
ডেভিড

3

আমি watchঅন্য উত্তরগুলির পরামর্শ অনুসারে ব্যবহার করব তবে কেবল ইউনিক্সের মতো শেল দ্বারা প্রদত্ত বিল্ডিং ব্লকগুলি ব্যবহার করে কীভাবে আপাতদৃষ্টিতে জটিল সমস্যা দেখা দিতে পারে তা আপনাকে দেখানোর জন্য; লুপটি আপনার লুপিং সম্পাদন করার সহজ উপায় হতে পারে।

$ 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

স্ক্রিনটি সাফ হয়ে যায় এবং তারপরে এক সেকেন্ড পরে, এটি প্রদর্শিত হয়:

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

2

মন্তব্যে প্রস্তাবিত হিসাবে, inotifyএটি ওভারকিল হলেও আপনি ব্যবহার করতে পারেন use এখন পর্যন্ত সবচেয়ে সহজ ব্যবহার করা হয় watch। এটি করার একটি উপায় এখানে 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
    

-q(বা --quiet) পাস করার grepসাথে "মোট" দিয়ে মিলিত লাইনটি নিরব করে দেবে।
ফিশফল

@ ফিফটফোল ভাল পয়েন্ট (দয়া করে আমার আগের মন্তব্যটি অগ্রাহ্য করুন যদি আপনি এটি মুছে ফেলার আগে যদি এটি দেখে থাকেন তবে আমি ধীর হয়ে যাচ্ছিলাম)। ধন্যবাদ, সম্পাদিত।
টেরডন

0

watch(1)সত্যিই দরকারী সরঞ্জাম। [1]

catযদিও আমি ব্যবহার করার পরামর্শ দিচ্ছি না ।

পরিবর্তে, ব্যবহার headবা tailজন্য কিনা আপনি কি আবার গোড়া বা ফাইল শেষে দেখতে প্রয়োজন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.