2012-02-02 10 views
5

w skrypcie tak przez podzielenie dużego pliku przez wyrażenie:zmienne przyrost nas w awk

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

ta produkuje out_1.txt, out_2.txt itp

Jak mogę uzyskać przedrostki nas jak produkowane przez split (out_aa.txt, out_ab.txt, out_ac.txt, ...)?

Dzięki

Odpowiedz

11

Nie jest bardzo prosta więc pozwala mi użyć trochę arytmetyki modulo tutaj tak:

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

super! dziękuję – philstra

+1

To jest opiekun @anubhava !! +1 –

+0

Nie ma za co, cieszę się, że to się udało. – anubhava

0

To może pracować dla Ciebie:

awk -vv "$(echo {a..z}{a..z})" 'BEGIN{split(v,a);n++} /MYSTRING/ {n++}{print >"out_" a[n] ".txt" }' LARGEFILE