AWK学习笔记-2.4Output输出
2017-04-11 20:23
211 查看
Output输出
awk的输出分隔符由OFS(列分隔符,默认空格” “)和ORS(行分隔符,默认换行”\n”)决定输出函数 | 意义 |
---|---|
print expression, expression, … | |
print expression, expression, … >filename | |
print expression, expression, … >>filename | |
print expression, expression, … | command | |
printf(format, expression, expression, … ) | |
printf(format, expression, expression, … ) >filename | |
printf(format, expression, expression, … ) >>filename | |
printf(format, expression, expression, … ) |command | |
close | |
system (command) |
print “”输出空行
output Into Files
格式空值字符
与c语言类似。符号 | |
---|---|
c | ASCII character |
d | decimal integer 十进制 |
e | [-]d.ddddddE[+-]dd 科学计数法 |
f | [-]ddd.dddddd 浮点数 |
g | 输出格式为f格式或e格式,系统根据数据占宽度m大小,自动选择占宽度较小的某种格式输出,g格式符不输出小数点后无意义的零 |
o | unsigned octal number 无符号8进制 |
s | string 字符串 |
x | unsigned hexadecimal number 无符号16进制 |
% | %%用来转义,输出% |
fmt | 1|printf(fmt,1) |
---|---|
%c | 97 |
%d | 97.5 |
%5d | 97.5 |
%e | 97.5 |
%f | 97.5 |
%7.2f | 97.5 |
%g | 97.5 |
%.6g | 97.5 |
%o | 97 |
%06o | 97 |
%x | 97 |
|%s| | January |
|%10s| | January |
|%-10s| | January |
|%.3s| | January |
|%10.3s| | January |
|%-10.3s| | January |
>重定向操作
此重定向将数据写入输出文件。如果输出文件不存在,那么它被创建。如果已经被创建将会覆盖之前的内容{ print \$1, \$2 > \$3 }
如果需要单独使用>需要加括号,比如不叫$2和$3的大小
{print $1,($2 > $3)}
>>追加操作
这种重定向追加数据到输出文件output-file。如果输出文件不存在,那么它被创建。当使用这种类型的重定向时,新的内容被附加在文件的结尾。|管道
通过管道来发送代替使用文件输出到另一个程序。这种重定向打开一个管道命令,并通过这个管道写入项的值,以另一种方法来执行命令。重定向参数命令实际上是一个AWK表达式。awk 'BEGIN { print "hello, world !!!" | "tr [a-z] [A-Z]" }'
HELLO, WORLD!!!
# print continents and populations, sorted by population BEGIN { FS = "\t" } { pop[$4] += $3 } END { for (c in pop) printf("%15s\t%6d\n", c, pop[c]) | "sort -t'\t' +1rn" }
Asia 2173
North America 340
Europe 172
South America 134
(都是右对齐)
输出到标准错误文件中
print message I "cat 1>&2"# redirect cat to stderr
system( "echo '" message "' 1>&2")# redirect echo to stderr
print message > "/dev/tty"# write directly on terminal
文件和管道靠名字识别
关闭文件和管道
close(expr)close("sort -t'\t' +1rn")
可以在awk中打开一个管道,且同一时刻只能有一个管道存在。通过close()可关闭管道。如:awk '{print1, $2 | “sort” }’ test END {close(“sort”)}。awk把print语句的输出通过管道作为linux命令sort的输入,END块执行关闭管道操作。
|&双向通信
AWK可以通信使用一个外部进程|&system函数可以在awk中执行linux的命令。
如:$ awk ‘BEGIN{system(“clear”)’;其返回值是命令的退出状态码,首先它会清除所有的缓冲区输出,然后启动一个/bin/sh实例执行命令,启动新进程。
fflush函数用以刷新输出缓冲区,如果没有参数,就刷新标准输出的缓冲区,如果以空字符串为参数,如fflush(“”),则刷新所有文件和管道的输出缓冲区。
相关文章推荐
- [转]Awk学习笔记
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串
- PHP学习笔记 2009-8-15_2 输出可变日期函数:generateAlterableTime()
- WinApi学习笔记-内存的复制,填充,输出等操作
- Win32学习笔记 第四章 输出文本_1
- awk简介与学习笔记收集第1/3页
- awk 学习笔记
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串,3q xuzhong
- C++ Primer学习笔记:标准输入/输出
- Awk学习笔记
- gcc中格式化输出函数-学习笔记
- awk简介与学习笔记收集第1/3页
- [转]Awk学习笔记
- linux awk 学习笔记
- awk学习笔记
- Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务
- SED,AWK学习笔记Part 2-----sed编辑器
- SED,AWK学习笔记Part 2-----sed编辑器[转]
- SQL Server 2005 技术内幕 TSQL查询学习笔记chapter4之四输出已有范围和缺失范围
- AWK学习笔记二:编程