您的位置:首页 > 运维架构 > Linux

linux awk命令使用的一些心得-基础命令

2015-06-23 14:34 686 查看
该工具的作用是将文本文件逐行读入,然后对读入文本进行切片(默认用空格分隔),然后再读入下一行,已提供使用。是一个格式化报告生成工具,然后用来处理文本。
当前,linux上使用的awk,是gawk(开源awk),简写为awk。

用法:
#awk [options] 'script' file,file2,…
#awk [options] 'PATTERN {action }' filelist
引用的话,每一行从$1开始,$0为当前行,以换行符作为行结束
常用为:awk '{print
$1}' 文件
常用options:

-F : 指定字段分隔符 awk -F :
'{print $1}' /etc/passwd-v :给一个变量赋初始值

print 函数:
打印内容,自带换行符

printf 函数:
格式化打印内容,不带换行符,需要如下的格式:
awk '{printf “格式” $1}' 文件
格式如下:

以%开头,后跟一个字符
%c 显示字符的ASCII码
%d,%i:十进制数
%e,%E 科学计数法显示数值
%g,%G 科学计数法的格式或浮点数的格式显示数值
%f 显示浮点数
%u 无符号整数
%% 显示%自身
%s 显示字符串

修饰符
N ,如%10s,当前字符串占用10格,不够补空
-:左对齐,默认右对齐
+:显示数值符号


例子
linux1:/home/test #awk '{printf "%-15s %i\n",$1,$2}' 1
welcome         0
hello           0

输出重定向Print
items > output-filePrint
items >> output-filePrint
items | command
特殊文件描述符/dev/stdin:标准输入/dev/stdout标准输出/dev/stderr:错误输出/dev/fd/N 某个特定文件描述符,如/dev/stdin就相当于/dev/fd/0
例如:
linux1:/home # awk -F: '{printf "%-15s %i\n",$1,$3>"/dev/stderr"}' /etc/passwd
root            0
bin             1
daemon          2
lp              4
mail            8
games           12
wwwrun          30
ftp             40
nobody          65534


本文出自 “测试的律动” 博客,请务必保留此出处http://fociceo.blog.51cto.com/2480/1664449
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: