আমি কোনও ফাইল থেকে সমস্ত খালি লাইন মুছে ফেলতে চাই। এমনকি লাইনে স্পেস বা ট্যাব রয়েছে তাও মুছে ফেলা উচিত।
আমি কোনও ফাইল থেকে সমস্ত খালি লাইন মুছে ফেলতে চাই। এমনকি লাইনে স্পেস বা ট্যাব রয়েছে তাও মুছে ফেলা উচিত।
উত্তর:
শুধু grep
অ ঐ খালি জন্য:
grep '[^[:blank:]]' < file.in > file.out
[:blank:]
অক্ষরের ব্যাপ্তি ( [...]
) এর অভ্যন্তরে পসিক্স অক্ষর শ্রেণি বলা হয়। আছে কয়েক মত [:alpha:]
, [:digit:]
... [:blank:]
অনুভূমিক সাদা স্থান (POSIX লোকেলে, স্থান এবং ট্যাব UTF8 হওয়া লোকেলে যে, কিন্তু অন্য লোকেলে সব মত, আরো হতে পারে ইউনিকোড অনুভূমিক ব্যবধান অক্ষর) সাথে মিলে যায় যখন [[:space:]]
ম্যাচ অনুভূমিক এবং উল্লম্ব সাদা স্থান অক্ষর ( [:blank:]
উল্লম্ব ট্যাব, ফর্ম ফিডের মতো প্লাস জিনিসগুলির সমান ...)।
grep '[:blank:]'
লাইন যে অক্ষর কোন কথা থাকতে ফিরে আসবে, :
, b
, l
, a
, n
বা k
। চরিত্রের ক্লাসগুলি কেবলমাত্র এর মধ্যেই স্বীকৃত [...]
, এবং এর ^
মধ্যে [...]
সেটটি উপেক্ষা করে। সুতরাং [^[:blank:]]
কোনও চরিত্র মানে ফাঁকা বর্ণগুলি।
[^[:blank:]]$
কেবলমাত্র এমন লাইনগুলি মেলে যা শেষ হয় না। আমরা এমন লাইনগুলি চাই যেখানে কোথাও
grep -E '\S'
কাজ করবে না?
কেমন:
sed -e 's/^[[:blank:]]*$//' source_file > newfile
অথবা
sed -e '/^[[:blank:]]*$/d' source_file > newfile
অর্থাত
প্রতিটি লাইনের জন্য, বিকল্প:
^
")[[:blank:]]
") শূন্য বা আরও বেশি বার (" *
")$
"):: ফাঁকা :: আরও তথ্য এবং http://www.zytrax.com/tech/web/regex.htm# বিশেষে অন্যান্য বিশেষ অক্ষর
[[:space:]]
ট্যাব অন্তর্ভুক্ত। কোনও স্থান যদি কোনও ট্যাব অনুসরণ করে তবে এটি আপনার রেজেক্স ব্যর্থ হবে।
wctype(3)
এবং isalpha(3)
manpages বর্ণনা চরিত্র শ্রেণীর কি ম্যাচ হবে।
sed
ফাঁকা লাইন অপসারণের জন্য আপনি কমান্ডটি ব্যবহার করতে পারেন :
sed '/^$/d' in > out
এই কমান্ডটি "ইন" ফাইল থেকে সমস্ত খালি লাইন মুছে ফেলে
প্রাক্তন পথে চেষ্টা করুন :
ex -s +'v/\S/d' -cwq test.txt
একাধিক ফাইলের জন্য (জায়গায় জায়গায় সম্পাদনা করুন):
ex -s +'bufdo!v/\S/d' -cxa *.txt
দ্রষ্টব্য: :bufdo
কমান্ডটি পসিক্স নয় ।
ফাইলটি পরিবর্তন না করে (কেবলমাত্র স্ট্যান্ডার্ড আউটপুট প্রিন্ট করুন):
cat test.txt | ex -s +'v/\S/d' +%p +q! /dev/stdin
নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
grep '\S' FILE
যা স্পেস বা ট্যাব সহ সমস্ত লাইন সরিয়ে দেয়।
অন্যথায়, ফাঁকা স্থান / ট্যাব সহ লাইনগুলি অন্তর্ভুক্ত না করে অপসারণ:
grep . FILE
উদাহরণ স্বরূপ:
$ printf "line1\n\nline2\n \nline3\n" > FILE
$ cat -v FILE
line1
line2
line3
$ grep '\S' FILE
line1
line2
line3
$ grep . FILE
line1
line2
line3
আরো দেখুন:
sed
: সেড ব্যবহার করে খালি লাইনগুলি মুছুনawk
: খালি ব্যবহার করে ফাঁকা রেখা সরান
$
লাইনের শেষের জন্যও কি কোনও হওয়া উচিত ?