awk I/O

来源:互联网 发布:用友软件咨询电话 编辑:程序博客网 时间:2024/05/19 20:41

– Start

Inputgetline                  读取下一行到 $0,同时设置 NF, NR, FNRgetline var              读取下一行到 var,同时设置 NR, FNRgetline <file            从文件 file中读取一行到 $0,同时设置 NFgetline var <file        从文件 file中读取一行到 varcommand | getline [var]  从管道中读取一行到 $0varcommand |& getline [var] 从其他进程中读取一行到 $0varnext                     停止处理当前行,处理下一行,相当于 continuenextfile                 停止处理当前文件,处理下一文件,相当于 continueOutputprint                          打印 $0print expr-list                打印 expr-listprint expr-list >file          输出 expr-list到文件print expr-list >> file        添加 expr-list到文件print expr-list | command      输出到管道print expr-list |& command     输出到其他进程printf fmt, expr-list          格式化打印 expr-listprintf fmt, expr-list >file    格式化打印 expr-list到文件system(cmd-line)               调用系统命令fflush([file])                 刷新缓存close(file [, how])            关闭文件/dev/stdin                     标准输入/dev/stdout                    标准输出/dev/stderr                    标准错误输出/dev/fd/n                      文件描述符 n

下面我们看一个例子,假设有下面的文件 test.txt

test1test2inline test2.txttest4inline test3.txtdone

现在让你把包含 inline 的行替换成它后面文件中的内容,怎么办?

#! /usr/bin/awk -f{    if($0~/inline/) {        fileName=substr($0, length("inline ") + 1);        while ((getline newLine <fileName) > 0) {            print newLine;        }        close(fileName);    } else {        print;    }}

– 更多参见:awk 精萃
– 声 明:转载请注明出处
– Last Updated on 2015-10-28
– Written by ShangBo on 2015-10-28
– End

0 0
原创粉丝点击