基本用法
echo "this is a test" | awk { print $0 }
## 输出为
this is a test
echo "this is a test" | awk { print $1 }
## 输出为
this
echo "this is a test" | awk { print $1, $2 }
## 输出为
this is
test.txt的文件内容如下
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
awk -F : { print $1 } /etc/test.txt
## 输出为
root
bin
daemon
adm
lp
awk -F : BEGIN {print "start1,start7"} {print $1 "," $7} END {print "end1,end7"} /etc/test.txt
## 输出为
start1,start7
root,/bin/bash
bin,/sbin/nologin
daemon,/sbin/nologin
adm,/sbin/nologin
lp,/sbin/nologin
end1,end7
BEGIN语句在所有文本处理动作执行之前被执行,END在所有文本处理动作执行之后被执行。
awk -F : { print NR " " NF " " $0 } /etc/test.txt
## 输出为
1 7 root:x:0:0:root:/root:/bin/bash
2 7 bin:x:1:1:bin:/bin:/sbin/nologin
3 7 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 7 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 7 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
高级用法
输出字符串的长度:
awk BEGIN { print length("this is a text") }
## 输出为
14
awk -F : { print toupper($1) } /etc/test.txt
## 输出为
ROOT
BIN
DAEMON
ADM
LP
awk -F : $0 ~ /daemon/ /etc/test.txt
## 输出为
daemon:x:2:2:daemon:/sbin:/sbin/nologin
awk条件操作符:
awk -F : { if ($1 > "d") { print $1 } else { print "-" } } /etc/test.txt
## 输出为
root
-
daemon
-
lp
{
if ($1 > "d") {
print $1
} else {
print "-"
}
}
awk -F : -f test.sh /etc/test.txt
## 输出为
root
-
daemon
-
lp
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129715.html
阅读 1347·2023-01-11 13:20
阅读 1685·2023-01-11 13:20
阅读 1133·2023-01-11 13:20
阅读 1860·2023-01-11 13:20
阅读 4101·2023-01-11 13:20
阅读 2705·2023-01-11 13:20
阅读 1386·2023-01-11 13:20
阅读 3598·2023-01-11 13:20