awk

2012-02-02 12 views
5

में वेतन वृद्धि पत्र चर इस तरह एक स्क्रिप्ट में स्ट्रिंग द्वारा एक बड़ी फ़ाइल को विभाजित करने के लिए:awk

awk '/MYSTRING/ {n++}{print >"out_" n ".txt" }' LARGEFILE 

यह out_1.txt पैदा करता है, out_2.txt, आदि

मैं पत्र उपसर्गों कैसे प्राप्त कर सकते हैं जैसा कि विभाजन (out_aa.txt, out_ab.txt, out_ac.txt, ...) द्वारा उत्पादित किया गया है?

धन्यवाद

उत्तर

11

इसकी नहीं बहुत सीधे आगे तो मुझे इस तरह यहाँ कुछ सापेक्ष अंकगणित उपयोग करने की अनुमति:

awk '/MYSTRING/ {n++} {p=97+int(n/26); q=(n%26)+97; s=sprintf("out_%c%c.txt", p, q); print > s}' LARGEFILE 
+1

सुपर! धन्यवाद – philstra

+1

यह एक रखरखाव @anubhava है !! +1 –

+0

आपका स्वागत है, खुशी है कि यह काम किया। – anubhava

0

यह आप के लिए काम कर सकते हैं:

awk -vv "$(echo {a..z}{a..z})" 'BEGIN{split(v,a);n++} /MYSTRING/ {n++}{print >"out_" a[n] ".txt" }' LARGEFILE 
संबंधित मुद्दे