जवाबों:
कुछ अन्य तरीके:
sed
sed 's/.*(\(.*\))/\1/' file
पर्ल
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
आपको किस वर्ण (ओं) को चुनने देता है जो लाइन को खेतों में विभाजित करने के लिए उपयोग करेगा। यहाँ, मैं इसे एक चरित्र वर्ग ( []
) दे रहा हूँ, जिसमें कोष्ठक खोलने और बंद करने का काम है। तो यह लाइन को (
और आगे विभाजित करेगा )
। नतीजतन, 2 क्षेत्र कोष्ठकों की सामग्री होगी। जैसे, तार के साथ G8 = P(G1,G3)foo
, $1
होगा G8 = P
, $2
होगा G1,G3
और $3
होगा foo
।
grep -oP '\(\K[^)]+' file
यह शुरुआती कोष्ठक की तलाश करता है, इसे अनदेखा करता है, फिर सभी गैर-क्लोज-कोष्ठक वर्णों का अनुसरण करता है।
जीएनयू grep की आवश्यकता है
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