Sed का उपयोग करते हुए, आप किसी पंक्ति के पहले 'N' अक्षर को कैसे प्रिंट करते हैं?


110

sedपहला एन अक्षर प्रिंट करने के लिए एक लाइनर का उपयोग करना क्या है ? मैं निम्नलिखित कर रहा हूँ:

grep -G 'defn -test.*' OctaneFullTest.clj  | sed ....

जवाबों:


209

उपयोग न करें sed, उपयोग करें cut:

grep .... | cut -c 1-N

यदि आप उपयोग करना चाहते हैं sed:

grep ... | sed -e 's/^\(.\{12\}\).*/\1/'

2
वास्तव में एक Cygwin प्रणाली पर मैं अभी काम कर रहा हूँ, cutजबकि इसे काटता नहीं sedहै।
kqw

या भी sed -r 's/^(.{12}).*/\1/'
फेडोरक्वी 'एसओ

1
@fedorqui -rस्पष्ट रूप से लिनक्स पर उपलब्ध है, लेकिन मैक पर नहीं।
पॉल टॉम्बलिन

वास्तव में, यह OSX पर उपलब्ध नहीं है।
फेडोरक्वी 'एसओ

1
FYI करें: cut -c 1-N(जहाँ N एक संख्या है) मेरे Cygwin इंस्टॉलेशन (cygwin v। 2.6, cut v। 8.25) पर काम करता है , OS X पर, sed -Eइसके बजाय sed -r, अन्यत्र उपयोग किया जाता है।
२०१

45
colrm x

उदाहरण के लिए, यदि आपको पहले 100 वर्ण चाहिए:

cat file |colrm 101 

यह लगभग सालों से है और ज्यादातर linux और bsd के (freebsd for sure), आमतौर पर डिफ़ॉल्ट रूप से होता है। मैं कभी टाइप करने के लिए याद नहीं कर सकते apt-get install colrm


यह पहले 50n अक्षर नहीं देता है। यह पाठ की हर पंक्ति के लिए n अक्षर देता है
bsmoo

और colrmutf8 को समझता है।
स्किप्पी ले ग्रांड गौरौ

9

grep का उपयोग करने की आवश्यकता नहीं है

एक उदाहरण:

sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file


4

N प्रथम वर्णों को मुद्रित करने के लिए आप N + 1 वर्णों को पंक्ति के अंत तक हटा सकते हैं:

$ sed 's/.//5g' <<< "defn-test"
defn

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.