在awk中增加字母变量

时间:2012-02-02 22:08:10

标签: split awk increment prefix

在这样的脚本中,用于按字符串分割大文件:

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

这会产生out_1.txt,out_2.txt等

如何获得split生成的字母前缀(out_aa.txt,out_ab.txt,out_ac.txt,...)?

由于

2 个答案:

答案 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