- sed针对行,awk针对列
awk:
awk [选项]’[条件]{指令}'文件名
awk [选项]'BEGIN{指令}{指令}END{指令}'文件名
指令:
print
# awk '{print $1,$3}' a.txt
选项:
-F :指定分隔符
# awk -F: '{print $7}' /etc/passwd
/usr/bin/
2、awk常见的内置变量:
$0 文本当前行的全部内容
$1 文本的第一列
$2 文本的第二列
$3 文本的第三列,依次类推
NR 文件当前行的行号
NF 文件当前行的列数(有几列)
(注:awk的print指令不仅可以打印变量,还可以打印常量)
FS:保存或设置字段分隔符
3.
read x
read y
输出x+y的值
格式化输出/etc/passwd文件
awk -F:‘BEGIN{print"User\tUID\tHome"}
{print $1 “\t” $3 “\t” $6}
END{print"Total",NR,“lines.”}’
/etc/passwd
注:(可以使用"\t"显示Tab制表位)
使用数值/字符串比较设置条件
OFS:输出域分隔符
ORS:输出记录分隔符
awk ‘{[pattern] action}’ {filenames} # 行匹配语句 awk ” 只能用单引号