csplit

2010-12-01 4 views
8

के लिए सही नियमित अभिव्यक्ति के लिए खोज रहे मैं एक फ़ाइल है कि इस तरह की कई लाइनों में शामिल हैं:csplit

1291126929200 started 88 videolist15.txt 4 Good 4 
1291126929250 59.875 29.0 29.580243595150186 43.016096916037604 
1291126929296 59.921 29.0 29.52749417740926 42.78632483544682 
1291126929359 59.984 29.0 29.479540161281143 42.56031951027556 
1291126929437 60.046 50.0 31.345036510255586 42.682281485516945 
1291126932859 started 88 videolist15.txt 5 Good 4 

मैं हर पंक्ति कि started शामिल फ़ाइलों को विभाजित करना चाहते हैं (या videolist, कोई फर्क नहीं पड़ता)।

निम्न आदेश केवल 2 उत्पादन फ़ाइलों का उत्पादन के रूप में देखा जा सकता, हालांकि मैं एक बहुत अधिक उम्मीद

$ csplit -k input.txt /started/ 

:

$ grep -i started input.txt |wc -l 
$ 146 

क्या सही csplit आदेश हो सकता है?

धन्यवाद

उत्तर

10

बस अंत में {*} जोड़ें:

$ csplit -k input.txt /started/ {*} 

आदमी पेज का कहना है:

{*} repeat the previous pattern as many times as possible. 

डेमो:

$ cat file 
1 
foo 
2 
foo 
3 
foo 
$ csplit -k file /foo/ {*} 
2 
6 
6 
4 
$ ls -tr xx*    
xx03 xx02 xx01 xx00 
$ csplit --version 
csplit (GNU coreutils) 7.4 
+2

दुर्भाग्यवश, यह मुझे देता है: 'csplit: *}: खराब पुनरावृत्ति गणना '। हालांकि, यह एक मनमाना संख्या के साथ काम किया। संकेत के लिए धन्यवाद। – slhck

+0

@ एसएलएचके: मेरे लिए ठीक काम करता है। मैंने एक डेमो रन जोड़ा है। मैं देखूंगा कि यह संस्करण समस्या है या नहीं। – codaddict

+1

मैं देखता हूं। मेरे पास ओएस एक्स के साथ बंडल किया गया बीएसडी संस्करण है जिसमें '--version' स्विच भी नहीं है। – slhck

0

ओपन ग्रो के अनुसार अप विनिर्देश csplit कमांड basic regular expressions स्वीकार करता है।

बेसिक रेगएक्सपी पूर्ण रेगेक्स कार्यान्वयन का सीमित सबसेट है। वे शाब्दिक पात्रों, तारांकन (*), डॉट (।), चरित्र वर्ग ([0-9]) और एंकर (^, $) का समर्थन करते हैं। वे एक-या-अधिक (+) या वैकल्पिक (ए | बी) का समर्थन नहीं करते हैं।

+0

यह मुझसे पूछे गए वास्तविक प्रश्न की कोई प्रासंगिकता नहीं है, जिसे साल पहले उत्तर दिया गया था। – slhck

+1

@ एसएलएचके क्या यह जानकारी किसी और की मदद कर सकती है जो इस प्रश्न पर ठोकर खाई है, जबकि अपनी स्थिति में सीएसप्लिट का उपयोग करने की कोशिश कर रहा है? – cbare

+0

यह * बहुत * सामान्य जानकारी है, हालांकि निश्चित रूप से प्रश्न के वास्तविक उत्तर के लिए * इसके अलावा * अच्छा होगा। जैसा कि यह खड़ा है, यह एक टिप्पणी के रूप में बेहतर होगा। – slhck

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^