awk
- awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。
awk 命令格式和选项
语法格式:
- awk [options] 'script' var=value files
- awk [options] -f scriptfile var=value files
常用命令选项
- -F fs, fs 指定输入分隔符,fs可以时字符串或正则表达式
- -v var=value 赋值一个用户定义变量,将外部变量传递给awk
- -f scriptfile 从脚本文件中读取awk命令
实例
- head -n2 test.txt|awk -F ':' '{print $1}'
- head -n2 test.txt|awk -F ':' '{print $0}'
- awk -F ':' '{print $1"#"$2"#"$3"#"$4}'
- awk '/oo/' test.txt
- awk -F ':' '$1 ~/oo/' test.txt
- awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txt
- awk -F ':' '$3=="0"' /etc/passwd
- awk -F ':' '$3>="500"' /etc/passwd
- awk -F ':' '$3>=500' /etc/passwd
- awk -F ':' '$7!="/sbin/nologin"' /etc/passwd
- awk -F ':' '$3<$4' /etc/passwd
- awk -F ':' '$3>"5" && $3<"7"' /etc/passwd
- awk -F ':' '$3>1000 || $7=="/bin/bash"' /etc/passwd
- head -5 /etc/passwd |awk -F ':' '{OFS="#"} {print $1,$3,$4}‘
- awk -F ':' '{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}' /etc/passwd
- head -n3 /etc/passwd | awk -F ':' '{print NF}‘
- head -n3 /etc/passwd | awk -F ':' '{print NR}‘
- awk 'NR>40' /etc/passwd
- awk -F ':' 'NR<20 && $1 ~ /roo/' /etc/passwd
- head -n 3 /etc/passwd |awk -F ':' '$1="root"‘
- awk -F ':' '{(tot=tot+$3)}; END {print tot}' /etc/passwd
- awk -F ':' '{if ($1=="root") {print $0}}' /etc/passwd
03-20 10:08