grep “কিছু” anyfiles.log> afile.csv, সিএসভি ফাইলে ইনপুট পাথ এবং ফাইলের নাম মুদ্রণের দরকার নেই


9

আমার কিছু লগ ফাইল রয়েছে, তাদের 30000 এর বেশি লাইন রয়েছে। আমাকে "ডোমেন" নামটি খুঁজে পেতে এবং CSV ফাইলে সংরক্ষণ করতে হবে তবে সংরক্ষণের পরে, CSV ফাইলের যে কোনও লাইন সিএসভি ফাইলের খুব লাইন শুরুতে ইনপুট ফাইলগুলির পথ এবং ফাইলের নাম যুক্ত করা হয়েছে। আমার যদি পথ এবং ইনপুট ফাইলের নাম সিএসভি ফাইলগুলিতে যুক্ত না করা হয় তবে আমি কী করব?

উদাহরণ:

Input
#cat /home/log/any.log

any things..domain, anything
any things..domain, anything
any things..domain, anything


grep "domain" /home/logs/any.log > newfile.csv

Output:
#cat newfile.csv
/home/logs/any.log:domain
/home/logs/any.log:domain
/home/logs/any.log:domain


#----My requirement output is:

cat newfile.csv
domain
domain
domain

শুভেচ্ছা, কেউ যদি জানেন তবে আমাকে সাহায্য করুন

উত্তর:


21

--no-filenameগ্রেপ জন্য বিকল্প ব্যবহার করুন ।

আউটপুট ফাইলের নামের উপসর্গ দমন। অনুসন্ধানের জন্য কেবলমাত্র একটি ফাইল (বা কেবলমাত্র স্ট্যান্ডার্ড ইনপুট) এলে এটি ডিফল্ট।

grep --no-filename "domain" 

তথ্যসূত্র: গ্রেপ ম্যানুয়াল


1

man cutবিশদটি দেখুন , তবে সংক্ষিপ্ত উত্তরটি grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv

অথবা দেখুন man grepএবং করবেনgrep -o "domain" /home/logs/*.log >newfile.csv

পিএস: গ্রেপ ফাইলের নাম আউটপুট দেয় না যদি grep "domain" /home/logs/any.logআপনার উদাহরণের মতো কমান্ড লাইনে কেবল একটি ফাইল থাকে । আপনি যদি ফাইলনামগুলিকে আউটপুট হতে বাধ্য করতে চান grep "domain" /home/logs/any.log /dev/nullতবে কৌশলটি করবেন।


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