मेरे पास निम्नलिखित सामग्री के साथ एक फाइल है:
(((jfojfojeojfow
//
hellow_rld
(((jfojfojeojfow
//
hellow_rld
मैं कोष्ठक के साथ शुरू होने वाली प्रत्येक पंक्ति को कैसे निकाल सकता हूं?
मेरे पास निम्नलिखित सामग्री के साथ एक फाइल है:
(((jfojfojeojfow
//
hellow_rld
(((jfojfojeojfow
//
hellow_rld
मैं कोष्ठक के साथ शुरू होने वाली प्रत्येक पंक्ति को कैसे निकाल सकता हूं?
जवाबों:
यहाँ bash
एक लाइनर है:
while IFS= read -r line; do [[ $line =~ ^\( ]] && echo "$line"; done <file.txt
यहां हम इनपुट की प्रत्येक लाइन पढ़ रहे हैं और यदि लाइन के साथ शुरू होता है (
, तो लाइन मुद्रित होती है। मुख्य परीक्षण द्वारा किया जाता है [[ $i =~ ^\( ]]
।
का उपयोग कर python
:
#!/usr/bin/env python2
with open('file.txt') as f:
for line in f:
if line.startswith('('):
print line.rstrip()
यहां यह line.startswith('(')
जांचता है कि क्या रेखा के साथ शुरू होता है (
, यदि ऐसा है तो रेखा मुद्रित होती है।
awk '/^\(/' testfile.txt
परिणाम
$ awk '/^\(/' testfile.txt
(((jfojfojeojfow
(((jfojfojeojfow
अजगर एक-लाइनर के रूप में:
$ python -c 'import sys;print "\n".join([x.strip() for x in sys.stdin.readlines() if x.startswith("(")])' < input.txt
(((jfojfojeojfow
(((jfojfojeojfow
या वैकल्पिक रूप से:
$ python -c 'import sys,re;[sys.stdout.write(x) for x in open(sys.argv[1]) if re.search("^\(",x)]' input.txt
look
क्लासिक लेकिन बहुत कम जाना जाता यूनिक्स उपयोगिताओं, जो एटी एंड टी यूनिक्स संस्करण 7. से में जिस तरह से वापस दिखाई दिया में से एक है man look
:
लुक यूटिलिटी किसी भी लाइन को फाइल में प्रदर्शित करती है जिसमें उपसर्ग के रूप में स्ट्रिंग होती है
परिणाम:
$ look "(" input.txt
(((jfojfojeojfow
(((jfojfojeojfow
आप उलटा कर सकते हैं।
grep -v '^[^(]' file
या
sed '/^[^(]/d' file
इसके लिए grep कमांड का उपयोग करें। उल्लिखित सामग्री के साथ फाइल मान लेना t.txt कहलाता है:
user:~$ grep '^(' t.txt
(((jfojfojeojfow
(((jfojfojeojfow
आगे के तर्क के रूप में '- रंग' के साथ आप टर्मिनल में रंग में भी देख सकते हैं कि क्या मेल खाता है। यह निर्देश भी खाली लाइनों से मेल नहीं खाता है।
(
साथ शुरू होने वाले न केवल उन सभी लाइनों को मुद्रित करेगा ।