FILE
:
hello
world
foo
bar
আমি কীভাবে এতে সমস্ত খালি নতুন লাইন সরিয়ে ফেলতে পারি FILE
?
কমান্ডের আউটপুট:
FILE
:
hello
world
foo
bar
FILE
:
hello
world
foo
bar
আমি কীভাবে এতে সমস্ত খালি নতুন লাইন সরিয়ে ফেলতে পারি FILE
?
কমান্ডের আউটপুট:
FILE
:
hello
world
foo
bar
উত্তর:
grep . FILE
(এবং যদি আপনি সত্যিই এটি সেডে করতে চান তবে sed -e /^$/d FILE
) :
(এবং যদি আপনি সত্যিই এটিকে কিছুটা করতে চান তবে awk /./ FILE
) :
sed -ne/./p
খুব বেশি কাজ করে এবং আরও awk /./
সংক্ষিপ্ত হয় ( {print}
অনির্ধারিত ছেড়ে দেওয়া হলে কর্মটি হয় )। @ ঘোস্টডোগ :৪: grep '[^[:space:]]'
তারপরে।
.
একটি নিয়মিত প্রকাশ যা নিউলাইন ছাড়া কোনও চরিত্রের সাথে মেলে।
grep . FILE
প্রদত্ত উদাহরণের সাথে কাজ করে তবে অগত্যা যখন ফাইলটিতে অক্ষরটির অংশ না থাকা বাইট থাকতে পারে। উদাহরণস্বরূপ, জিএনইউ গ্রেপ ২.২০ সহ, printf "\x80\n" | grep .
কিছুই আউটপুট করে না।
নিম্নলিখিত চেষ্টা করুন:
grep -v -e '^$'
grep -v -e '^$'
সর্বদা কাজ করে, যা এরকম নয় grep .
। উদাহরণস্বরূপ, জিএনইউ গ্রেপ ২.২০ এর সাহায্যে printf "\x80\n" | grep .
কিছুই আউটপুট দেয় না, printf "\x80\n" | grep -v '^$'
খালি খালি লাইনের আউটপুট দেয়।
with awk, just check for number of fields. no need regex
$ more file
hello
world
foo
bar
$ awk 'NF' file
hello
world
foo
bar
awk1line.txt
- তারপরেও, তবে বেশিরভাগ
এখানে এমন একটি সমাধান রয়েছে যা সমস্ত ফাঁকা অপসারণ করে যা খালি হয় বা কেবল স্থান অক্ষর থাকে:
grep -v '^[[:space:]]*$' foo.txt
এটা চেষ্টা কর: sed -i '/^[ \t]*$/d' file-name
এটি কোনও খালি লাইন মুছে ফেলবে। সাদা স্পেসের (স্পেস বা ট্যাব) অর্থাত (0 বা আরও বেশি) ফাইলে।
দ্রষ্টব্য: বর্গাকার বন্ধনীর ভিতরে '' t 'এর পরে একটি' স্পেস 'রয়েছে।
সংশোধক -i
ফাইলটিতে ফিরে আপডেট হওয়া সামগ্রীগুলি লিখতে বাধ্য করবে। এই পতাকা ব্যতীত আপনি খালি লাইনগুলি স্ক্রিনে মুছে ফেলা দেখতে পাবেন তবে আসল ফাইলটি প্রভাবিত হবে না।
grep '^..' my_file
উদাহরণ
THIS
IS
THE
FILE
EOF_MYFILE
এটি কমপক্ষে 2 টি অক্ষরের সাথে আউটপুট হিসাবে দেয়।
THIS
IS
THE
FILE
EOF_MYFILE
সঙ্গে আরো ফলাফল দেখুন grep '^' my_file
আউটপুট
THIS
IS
THE
FILE
EOF_MYFILE
এবং grep '^.' my_file
আউটপুট সঙ্গে
THIS
IS
THE
FILE
EOF_MYFILE
যদি খালি লাইনগুলি অপসারণের অর্থ কোনও স্থান সহ লাইন থাকে তবে ব্যবহার করুন:
grep '\S' FILE
উদাহরণ স্বরূপ:
$ printf "line1\n\nline2\n \nline3\n\t\nline4\n" > FILE
$ cat -v FILE
line1
line2
line3
line4
$ grep '\S' FILE
line1
line2
line3
line4
$ grep . FILE
line1
line2
line3
line4
আরো দেখুন:
প্রাক্তন পথে চেষ্টা করুন :
ex -s +'v/\S/d' -cwq test.txt
একাধিক ফাইলের জন্য (স্থানে সম্পাদনা করুন):
ex -s +'bufdo!v/\S/d' -cxa *.txt
ফাইলটি পরিবর্তন না করে (কেবলমাত্র স্ট্যান্ডার্ড আউটপুট প্রিন্ট করুন):
cat test.txt | ex -s +'v/\S/d' +%p +q! /dev/stdin
পার্ল ওভারকিল হতে পারে তবে এটি ঠিক একইভাবে কাজ করে।
সম্পূর্ণ ফাঁকা সমস্ত লাইন সরিয়ে দেয়:
perl -ne 'print if /./' file
সম্পূর্ণ শূন্য, বা কেবল শ্বেত স্থান রয়েছে এমন সমস্ত লাইন সরিয়ে দেয়:
perl -ne 'print if ! /^\s*$/' file
ভিন্নতা যা আসলটি সম্পাদনা করে এবং একটি .bak ফাইল তৈরি করে:
perl -i.bak -ne 'print if ! /^\s*$/' file
আপনি যদি জানতে চান যে কোডের মোট লাইনগুলি আপনার এক্সকোড প্রকল্পে রয়েছে এবং আপনি প্রতিটি সুইফট ফাইলের জন্য গণনা তালিকাতে আগ্রহী না হন তবে এটি আপনাকে উত্তর দেবে। এটি কোনও কোডবিহীন লাইনগুলি সরিয়ে দেয় এবং মন্তব্যের সাথে উপস্থাপিত লাইনগুলি সরিয়ে দেয়//
আপনার এক্সকোড প্রকল্পের মূল স্তরে এটি চালান।
find . \( -iname \*.swift \) -exec grep -v '^[[:space:]]*$' \+ | grep -v -e '//' | wc -l
আপনার কোডটিতে যদি মন্তব্য ব্লক থাকে এবং এর সাথে /*
শেষ হয় */
:
/*
This is an comment block
*/
তাহলে এগুলি গণনায় অন্তর্ভুক্ত হবে। (খুব কঠিন).
সহজ উত্তর -----------------------------------------
[root@node1 ~]# cat /etc/sudoers | grep -v -e ^# -e ^$
Defaults !visiblepw
Defaults always_set_home
Defaults match_group_by_gid
Defaults always_query_group_plugin
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
[root@node1 ~]#