আপনি ব্যবহার করতে পারেন gawk(বা awk, যদি আপনার /etc/alternatives/awkপয়েন্টগুলি /usr/bin/gawk):
ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
এটি আছুর উত্তরের পদ্ধতির অনুরূপ , তবে শেল লুপের পরিবর্তে কল করে যে pingআউটপুটটি পাইপ করা হয়েছে । এই পদ্ধতির মতোই, এটি ব্যতীত কাজ করে , তবে যদি আপনি এন পিংসের পরে পিং স্টপ করতে পাস না করেন এবং আপনি + দিয়ে লুপটি থামান , সাধারণ পরিসংখ্যান মুদ্রণ করবে না।gawkdate-c-c nCtrlCping
ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C
pingএর আউটপুট পাইপ করা হয় gawkবা শেল whileলুপ হয় কিনা তা ঘটে । কারণ পাইপ ডান দিকে যে কমান্ড বদলে pingপায় SIGINT যখন Ctrl+ + Cচাপা হয়, এবং pingসমাপ্ত হওয়ার আগে পরিসংখ্যান প্রিন্ট করতে জানে না।
যদি আপনি কোনও পাইপের বাম দিকে চালিত pingনা -cহয়ে থাকেন (উপরে দেখানো হয়েছে) এবং আপনি এটি এমনভাবে শেষ করতে চান যে এটি এখনও পরিসংখ্যানগুলি মুদ্রণ করে, তবে টার্মিনালটি যেখানে এটি চলছে সেখানে Ctrl+ চাপার পরিবর্তে Cআপনি চালাতে পারেন অন্য টার্মিনাল থেকে, কমান্ডের প্রসেস আইডির পরিবর্তে । আপনি যদি কেবলমাত্র একটি উদাহরণ চালাচ্ছেন তবে আপনি সহজভাবে ব্যবহার করতে পারেন ।kill -INT PIDPIDpingpingkillall -INT ping
বিকল্পভাবে, আপনি pingপাইপের বাম দিকে কমান্ডটি একটি শেল চালিত কমান্ডের সাহায্যে প্রতিস্থাপন করতে পারেন, সেই শেলের প্রসেস আইডি প্রতিবেদন করেন এবং তারপরে সেই শেলটি প্রতিস্থাপন করে ping(যার ফলে একই পিআইডি থাকে):
sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'
তারপরে আউটপুট প্রথম লাইন, pingকমান্ডের প্রসেস আইডি প্রদর্শন করবে (যা প্রতিটি সময় সাধারণত পৃথক হবে)। এটি দেখতে এইরকম লাগবে তবে ভিন্ন সময় এবং তারিখ এবং সম্ভবত একটি আলাদা প্রক্রিয়া আইডি সহ:
Tue 20 Mar 2018 12:11:13 PM EDT: 7557
তারপরে, অন্য টার্মিনাল থেকে, আপনি চালিত করতে পারেন, আপনি যে প্রকৃত প্রসেস আইডি দেখেছেন তার kill -INT 7557পরিবর্তে কমান্ডটি এমনভাবে 7557শেষ করতে pingপারেন যাতে এটি পরিসংখ্যান মুদ্রণের কারণ হতে পারে।
(যদি আপনি নিজের শেলের কাজ নিয়ন্ত্রণের বৈশিষ্ট্যগুলি গ্রহণ করেন, তবে আপনি একই টার্মিনালের মধ্যেও এটি অর্জন করতে পারেন But তবে আপনি যদি টার্মিনালে কোনও অতিরিক্ত বহির্মুখী অংশ সরিয়ে না দিয়ে যদি টার্মিনাল থেকে টেক্সট অনুলিপি করতে চান তবে, আপনি pingএকটি পৃথক টার্মিনাল থেকে সমাপ্ত করা উচিত ।)
আরও পড়া: