2011-10-18 15 views
21

स्ट्रीम में टेक्स्ट की प्रत्येक पंक्ति से पहला शब्द कैसे हटाऊंगा? अर्थातटेक्स्ट स्ट्रीम में पहला शब्द निकालें

$cat myfile 
some text 1 
some text 2 
some text 3 

जो मैं चाहता

$cat myfile | magiccommand 
text 1 
text 2 
text 3 

है मैं इस पार्टी के उपयोग के बारे जाना चाहते हैं? मैं अजीब '{प्रिंट $ 2 $ 3 $ 4 $ 5 ....}' का उपयोग कर सकता हूं लेकिन यह गन्दा है और इसके परिणामस्वरूप सभी शून्य तर्कों के लिए अतिरिक्त रिक्त स्थान होंगे। मैं सोच रहा था कि sed ऐसा करने में सक्षम हो सकता है, लेकिन मुझे इसका कोई उदाहरण नहीं मिला। किसी भी मदद की सराहना की है! धन्यवाद!

उत्तर

48

अपने उदाहरण पाठ के आधार पर,

cut -d' ' -f2- yourFile 

काम करना चाहिए।

+0

बिल्कुल सही! धन्यवाद। – Trcx

4

रन इस sed "s/^some\s//g" myfile तुम भी एक पाइप

+0

यह क्या है मैं देख रहा था ... ठंडा – Satish

8

यही काम करना चाहिए का उपयोग करने की जरूरत नहीं है:

$ cat test.txt 
some text 1 
some text 2 
some text 3 

$ sed -e 's/^\w*\ *//' test.txt 
text 1 
text 2 
text 3 
6

यहाँ कोई फर्क नहीं पड़ता कि कितने रिक्त स्थान मौजूद एक समाधान awk

awk '{$1= ""; print $0}' yourfile 
0

का उपयोग कर पहला शब्द निकालने के लिए, अंतरिक्ष तक है, का उपयोग करें: sed 's/[^ ]* *//'

उदाहरण:

$ cat myfile 
some text 1 
some text 2 
some  text 3 

$ cat myfile | sed 's/[^ ]* *//' 
text 1 
text 2 
text 3 
संबंधित मुद्दे