在这样的脚本中,用于按字符串分割大文件:
awk '/MYSTRING/ {n++}{print >"out_" n ".txt" }' LARGEFILE
这会产生out_1.txt,out_2.txt等
如何获得split生成的字母前缀(out_aa.txt,out_ab.txt,out_ac.txt,...)?
由于
答案 0 :(得分: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 :(得分:0)
这可能对您有用:
awk -vv "$(echo {a..z}{a..z})" 'BEGIN{split(v,a);n++} /MYSTRING/ {n++}{print >"out_" a[n] ".txt" }' LARGEFILE