AWK实用程序集合:从流编辑器到字谜查找
1. 输出重定向与错误处理
在某些代码逻辑中,涉及到对特定行的处理和输出重定向。以下是相关代码:
continue if (index(line, "@") == 0) { print line > curfile continue } n = split(line, a, "@") # if a[1] == "", means leading @, # don't add one back in. for (i = 2; i <= n; i++) { if (a[i] == "") { # was an @@ a[i] = "@" if (a[i+1] == "") i++ } } print join(a, 1, n, SUBSEP) > curfile这里使用了>进行输出重定向,这种方式只会打开文件一次,后续输出会追加到文件中。文件只有在遇到新的数据文件名或输入文件结束时才会关闭。
同时,定义了unexpected_eof()函数用于处理意外的文件结束情况,输出错误信息并退出程序:
function unexpected_eof() { printf("extract: %s:%d: unexpected EOF or error\n",