诡异的awk正则匹配问题$ awk '{if ( $1 ~ /^x{1,}/ ) print}' 0000 其中0000是文件名,包含内容是xu hello
正则分为BREs,EREs,PREs,这种情况应该是awk或相关说明文档没有给得很明确导致理解与实际运行结果的不符,不同编译版本可能存在开关上差异常吧。
考虑加上--posix参数看看,awk--posix'{if($1~/^x{1,}/)print}'0000
awk中变量不好使 awk '{if(\$1 >= $n) print \$2}' 变量$n 前面加\$n也不行
首先你的$n是什么?既然它不是awk的内置变量,哪就是你的外部变量。
awk调用外部变量是需要用引号括起来。或者在前面-v添加这个外部变量。
awk'{if($1>="$n")print$2}'file
shell 命令,在awk里面使用if,判断m 和 o两个整数是否在$4和$5这两个整数之间
awk里面的比较不是用ge le,awk 用来比较的运算符是 >= (大于等于) <=(小于等于)。m和o 都要加个$,$m $o
再看看别人怎么说的。
关于awk中做if判断检测磁盘使用率的问题
#!/bin/bash
#########
# author:Jiaping Liao
# 2011-11
#########
spaceUse()
#NR==2{print $6}是取第6列第二行的数据---即16(%被后面的cut去掉了)
num=`df /home -hT | awk 'NR==2{print $6}' | cut -d "%" -f 1`
echo " 本计算机/home目录的使用率是: $num%"
if [[ $num -lt 50 ]]
then
echo " 用户文件系统磁盘使用负荷量小"
elif [[ $num -lt 90 ]]
then
echo " 用户文件系统磁盘使用负荷量正常"
else
echo " 用户文件系统磁盘使用负荷量偏大"
fi
main()
spaceUse
原创文章,作者:墨羽SEO,如若转载,请注明出处:https://www.moyuseo.com/fuwuqi/8665.html