কমান্ড লাইনে মুদ্রিত লাইনের মধ্যে কীভাবে আমি নতুন লাইন যুক্ত করব?


30

মেল লগগুলি পড়া অবিশ্বাস্যরকম কঠিন। কমান্ড লাইনে মুদ্রিত প্রতিটি লাইনের মধ্যে আমি কীভাবে ফাঁকা রেখা আউটপুট দিতে পারি? উদাহরণস্বরূপ, বলুন আমি লগটি গ্রেপ-ইন করছি। এইভাবে, একাধিক মোড়ানো লাইনগুলি বিভ্রান্ত হচ্ছে না।

উত্তর:


52
sed G 
# option: g G    Copy/append hold space to pattern space.

Gপ্রায়শই ব্যবহৃত হয় না, তবে এই উদ্দেশ্যে দুর্দান্ত। সেড দুটি বাফার স্পেস রক্ষণ করে: "প্যাটার্ন স্পেস" এবং "হোল্ড স্পেস"। লাইন দ্বারা প্রক্রিয়াভুক্ত sed সাধারণত প্যাটার্ন স্থান মাধ্যমে প্রবাহিত বিভিন্ন কমান্ড তার বিষয়বস্তু (কাজ যেমন s///, pইত্যাদি); হোল্ড স্পেস খালি শুরু হয় এবং কিছু কমান্ড দ্বারা ব্যবহৃত হয়।

Gকমান্ড একটি newline এবং প্যাটার্ন স্থান থেকে ধরে স্থান বিষয়বস্তু appends। উপরের শেড প্রোগ্রামটি কখনই হোল্ড স্পেসে কিছু রাখে না, তাই Gকার্যকরভাবে প্রক্রিয়াজাত প্রতিটি লাইনে কেবল একটি নতুন লাইন যুক্ত হয়।


3
এটি প্রয়োজনীয় নয়। পাইপিং whatever | sed Gকৌশলটি করা উচিত।
উদ্ভট

@ ফ্রেবজৌস: ঠিক আছে, -eকারণ আমাদের কেবলমাত্র একটি একক কমান্ড যুক্তি প্রয়োজন need
ক্রিস জনসন

আমি কি আপনাকে পছন্দ করতে পারি, +2? নখ!
খ্রিস্টান বনজিওর্নো

তবে, এটি কেবলমাত্র
স্টডআউটে প্রদর্শিত হয়

8

অতিরিক্ত নিউলাইন যোগ করতে বিশ্রী ব্যবহার করুন। এটি আপনাকে পছন্দসই জিনিসগুলি ফিল্টার আউট করার অনুমতি দেয়।

awk '{print $0,"\n"}' | less

4

সিড ব্যবহার করুন এবং নিজেই সম্পূর্ণ লাইনটি প্রতিস্থাপন করুন অতিরিক্ত একটি নতুন লাইন অক্ষর:

grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"

4
কিছুটা সরল সিড প্রতিস্থাপন 's / $ / \ n /' হবে, যদিও @ ক্রিস জনসনের 'জি' কমান্ডটি আরও সহজ।
ক্যামহ

3

আপনি কি এই পরে?

grep SPAM mail.log | while read -r line; do echo; echo $line; done


read -rব্যাকস্ল্যাশ অক্ষরগুলির বিশেষ হিসাবে চিকিত্সা করা এড়াতে আপনি সম্ভবত ব্যবহার করতে চাইবেন ।
ক্রিস জনসন

0

যদি এটি কেবল চেহারাটির চেয়ে বেশি থাকে তবে আমি এগুলিকে একটি পাঠ্য ফাইলে প্রেরণ এবং একটি পাঠ্য সম্পাদক দিয়ে খুলতে পছন্দ করি যাতে আপনি লাইনগুলি মোড়ানোর জন্য সেট করতে পারেন এবং না এবং সহজেই অনুসন্ধানগুলি করতে পারেন ... এবং অযাচিত লাইনগুলি মুছুন এবং এগুলি ছাড়াও অনেক কমান্ড টাইপ করতে হবে।

cat file.log > log.txt এবং gedit log.txtবা ন্যানোর মতো একটি টার্মিনাল সম্পাদক

সম্পাদনা করুন: বা cp file.log log.txtযা অবশ্যই সহজ এবং দ্রুত ... কিথবি মন্তব্যে ধন্যবাদ


1
কেন catএবং না cp?
কিথবি

অবশ্যই cpসহজ এবং দ্রুত হবে! ... হ্যাঁ - আমি অন্যান্য উত্তরগুলি পড়ছিলাম grepএবং awkতাই আমি এটি সেভাবে লিখেছিলাম catতবে আমি এটি সংশোধন করছি, ধন্যবাদ
লরেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.