1. print
print $1,$2 中间使用逗号隔开, 实际输出是在 $1 和 $2 之间留一个空格.
print "" 输出一个空行
print $1 $2 会将$1和$2连接到一起.
输出的分隔符OFS和ORS分别指定字段分隔符和记录分隔符.
如 awk ' BEGIN { OFS=";" ; ORS="\n---------\n" } ; {print $1,$2}' inputfile
OFMT指定输出数字是的格式, 缺省为: "%.6f" #6表示小数点后的位数. 在输出数字时会自动按照OFMT的设置将数字转化为字符串.
2. printf - printf format, item1, item2, ...
跟C语言的printf类似. OFS 和 ORS 失效. 换行需自加"\n"
如 awk ' {printf "%s, %s\n", $1, $2 }' inputfile
3. 重定向
print 和 printf 的输出可以重定向到 文件或者其他命令的输入中.
具体有
print items > outfile 如: awk '{ print $0 > "a.txt" }' BBS-list
print items >> outfile 如: awk ' { print $0 >> "a.txt" }' BBS-list
print items | command 如: awk ' { print $1 | "sort -r"}' BBS-list
print items |& command
4. 关闭重定向输入和输出
在awk脚本程序的执行过程中, 重定向打开的文件都只会打开一次, 执行针对每一记录的动作时,都是接着上一次开始.
因此,如果相关动作需要从文件开头开始, 则必须在脚本中明确调用close(filename) or close(command)
如 close("a.txt"), close("sort -r")
这篇笔记主要介绍了awk中的输出方法,包括print和printf的使用,如何设置字段和记录分隔符,以及输出重定向。print通过逗号或空格连接字段,可以设置OFS和ORS。printf则类似于C语言的printf,支持格式化输出。此外,awk还支持输出重定向到文件或作为其他命令的输入,但需要注意使用close()函数来重新开始文件读取。
2552

被折叠的 条评论
为什么被折叠?



