awk判断整除,取绝对值,按位分割

awk的内置函数不算多,没有直接的函数可以判断整除,取绝对值,按位分割,因此实现这些功能需要借助其他函数

awk判断整除

用int取整函数实现

#判断输入数字能否被3整除
echo -e "2\n5\n6\n9" | awk '{
  if (($1/3)==int($1/3)) 
    print $1,"yes"; 
  else 
    print $1,"no"
}' | cat 
#输出
#2 no
#5 no
#6 yes
#9 yes

awk取绝对值

使用sqrt开方函数实现

#输出数据的绝对值
echo -e "-5\n-3.3\n0.3" | awk '{
  print sqrt($1*$1)
}' | cat 
#输出
# 5
# 3.3
# 0.3

awk按字节分割

awk默认按照空格分割列,也可以通过-F选项指定分割符。
但是如果提取每行的第2到第5个字符就不能通过-F来指定,需要用到substr函数。

#输出每行的第2-6个字符
echo -e "this is first line\nthis is second line" | awk '{
  print substr($0,2,4)
}' | cat 
#输出
# his i
# his i
posted @ 2022-08-19 19:59  Philbert  阅读(1908)  评论(0编辑  收藏  举报