পাইপ সহ ঘড়ি ব্যবহার


179

আমি এই আদেশটি চালাতে চাই:

watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine

তবে এটি চালায় না, কারণ "আমার মনে হয়" যে গ্রেপ লেজের পরিবর্তে ঘড়িতে চালানোর চেষ্টা করে ...

এর মতো কিছু করার উপায় আছে কি?

watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)

অনেক ধন্যবাদ!

উত্তর:


269

উদ্ধৃতি সহ কমান্ড চারপাশে

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

2
পাইপলাইনে যদি কোটও থাকে (যেমন awk '{print $3}')? সম্পাদনা করুন: এটি পছন্দ
অরেঞ্জডগ

2
আপনি এই অক্ষরগুলি \ সহ পালাতে পারেন, যেমনwatch -n 'awk \'{print $3}\''
লেভ

29

আমি ভুল হতে পারি, তবে এটি কি একই জিনিস অর্জন করবে না (মেলানো লগ লাইনগুলি যুক্ত হওয়ার সাথে সাথে দেখা হচ্ছে) আরও সহজভাবে?

tail -f -n 200 log/site_dev.log | grep Doctrine

6
আমি সম্মতি দিচ্ছি যতদূর সিপিইউ সম্পর্কিত এটি আরও কার্যকর হতে পারে তবে "পাইপগুলির সাথে ঘড়ি ব্যবহার করা" বিষয়টির প্রসঙ্গে এটি ঘড়িটি ব্যবহার করে না তাই এটি কোনও উত্তর নয়। এটি ঘড়ি এবং পাইপগুলি প্রায়শই লেজের প্রসঙ্গে না দেখায় বলে মনে হচ্ছে এটি একটি দুর্বল উদাহরণের প্রশ্ন of
টিউডর

1
না, আমি মনে করি আপনি মাধ্যম এবং শেষটিকে বিভ্রান্ত করছেন। ব্যবহারকারীর স্পষ্টরূপে Doctrineএকটি বর্ধমান ফাইলে উপস্থিত হওয়া দেখতে চাইছিল এবং যখন সে তার সরঞ্জামবাক্সটি দেখল, তখন কেবল তারই দেখা গেল watch। তাঁর যা জানা দরকার ছিল তা ছিল tail -f। আরও দেখুন মেটা.স্ট্যাকেক্সেঞ্জার.কমিশনস
সেকশনস /

10
আমি মনে করি এগুলি উভয়ই গ্রহণযোগ্য উত্তর। শীর্ষ এবং স্বীকৃত উত্তর সঠিকভাবে উত্থাপিত সঠিক প্রশ্নের উত্তর দেয় এবং এই উত্তরটি ওপি তাদের জন্য তৈরি XY সমস্যাটিকে সঠিকভাবে সনাক্ত করে এবং তারা প্রথম স্থানে সত্যিকার অর্থে সমাধান চেয়েছিল এমন সমাধান সরবরাহ করে। উভয় উত্তর সহজেই এই প্রশ্নটি জুড়ে আসা কারও পক্ষে কার্যকর হতে পারে।
cdowie

2
আমি দেখার উপায় খুঁজছিলাম shellcheck *.sh | grep line | wc -lএবং গৃহীত উত্তরটি আমার পক্ষে কার্যকর।
আমেদী ভ্যান গ্যাস

2

আপনি উদ্ধৃতি সহ কমান্ডটি ঘিরে রাখতে পারেন:

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

যদি কমান্ডের মধ্যে উদ্ধৃতি থাকে, আপনি উপযুক্ত পালানোর সাথে বিভিন্ন ধরণের উদ্ধৃতি ব্যবহার করতে পারেন:

watch -n 1 $'tail -n 200 log/site_dev.log | fgrep \'Doctrine.*\''

আপনি যদি সত্যিই চতুর কিছু করার চেষ্টা করছেন, একটি স্ক্রিপ্টে আদেশ বা আদেশগুলি রাখুন এবং ঘড়ির সাহায্যে এটি ব্যবহার করুন:

cat <<EOF >/tmp/watch-command
tail -n 200 $(pwd)/log/site_dev.log | fgrep Doctrine
EOF
chmod +x /tmp/watch-command
watch /tmp/watch-command

প্রয়োজনে আপেক্ষিক পাথের জন্য অ্যাকাউন্ট করতে ভুলবেন না।

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