在像这样的脚本中,用于按字符串拆分大文件: awk '/MYSTRING/ {n++}{print >"out_" n ".txt" }' LARGEFILE 该命令会产生out_1.txt, out_2.txt等文件。 如何获得类似split命令生成的带字母前缀的文件名(例如out_aa.txt, out_ab.txt, out_ac.txt, ...)? 谢谢。
这并不十分直观,所以请允许我在这里使用一些模运算,就像这样:awk '/MYSTRING/ {n++} {p=97+int(n/26); q=(n%26)+97; s=sprintf("out_%c%c.txt", p, q); print > s}' LARGEFILE
这个可能适合你:awk -vv "$(echo {a..z}{a..z})" 'BEGIN{split(v,a);n++} /MYSTRING/ {n++}{print >"out_" a[n] ".txt" }' LARGEFILE
'
。 - potong