উত্তর:
আরও কয়েকটি উপায়:
sed
sed 's/.*(\(.*\))/\1/' file
Perl
perl -pe 's/.*\((.*)\)/$1/' file
অথবা
perl -lanF"[()]" -e 'print $F[1]' file
অথবা
perl -pe 's/.*\((.+?)\).*/$1/;' file
awk
awk -F"[()]" '{print $2}' file
খোল
while IFS="()" read a b; do echo "$b"; done < file
-F
সাহায্যে আপনি কোন চরিত্র (গুলি) ব্যবহার করতে পারবেন তা লাইনগুলি ক্ষেত্রগুলিতে বিভক্ত করতে ব্যবহার করবে। এখানে, আমি এটি []
বন্ধনীর খোলার এবং বন্ধ হওয়ার সমন্বয়ে একটি অক্ষর শ্রেণি ( ) দিচ্ছি । সুতরাং এটি লাইনটি বিভক্ত করবে (
এবং চালিয়ে যাবে )
। ফলস্বরূপ, ২ য় ক্ষেত্রটি প্রথম বন্ধনীগুলির সামগ্রী হবে। যেমন, স্ট্রিং সঙ্গে G8 = P(G1,G3)foo
, $1
হতে হবে G8 = P
, $2
হতে হবে G1,G3
এবং $3
হবে foo
।
grep -oP '\(\K[^)]+' file
এটি খোলার প্রথম বন্ধনী সন্ধান করে, এটিকে উপেক্ষা করে, তারপরে অনুসরণ করা সমস্ত নন-ক্লোজ-প্রথম বন্ধনী মুদ্রণ করে।
GNU গ্রেপ প্রয়োজন
sed 's/^.*(//;s/)$//' /path/to/file
এটি ভেঙে ফেলার জন্য:
sed
হয় s
tream ed
itor। 's/^.*(//;s/)$//'
স্ক্রিপ্টটি কি পাঠানো হচ্ছে sed
, যা নিম্নলিখিত হিসাবে ভেঙে যায়:
s/^.*(// substitute nothing for the beginning of any line (`^`) followed by anything up until an open-paren (`(`)
s/)$// substitute nothing for a close-paren (`)`) followed immediately by the end of a line
awk -F'(' '{print $NF}' file | sed 's/)//g'
awk -F"[()]" '{print $2}' file
হিসেবে terdon এর উত্তর