繁体   English   中英

使用 bash 脚本读取和分析文本文件

[英]reading and analyzing a text file with bash script

我想读取一个日志文件,并想提取紧跟在关键字“salary”之后的 5-6 个数字。 然后想分析一下工资是否在2000以上。如果有2000以上的,那就是跨国公司,否则不知道。 写完工资后,这条线大部分都结束了,但有时会有一个 email 选项。

我的脚本目前看起来像这样。

salary=$(grep -o 'salary [1-9][0-9]\+$' tso.txt | grep -o '[0-9]\+')

echo $salary

if [ $salary >  2000 ]; then echo "it is mnc....."; else ":it is unknown....."; fi


这可以在一个简单的awk中完成,如下所示:

awk '
{
   for (i=2; i<=NF; ++i)
      if ($(i-1) == "salary" && $i+0 > 2000) {
         mnc = 1
         exit
      }
}
END {
   print (mnc ? "it is mnc....." : "it is unknown.....")
}' file

由于您似乎使用的是 GNU grep ,因此您可以直接使用grep -oP 'salary *0*\K[1-9][0-9]*'获取薪水值,然后您可以使用if [ $salary -gt 0 ]

查看在线演示

#!/bin/bash
tso='salary 23000'
salary=$(grep -oP 'salary *0*\K[1-9][0-9]*' <<< "$tso")
echo $salary # => 23000

if [ $salary -gt  0 ]; then
  echo "it is mnc.....";
else
  echo "it is unknown....."; 
fi
# => it is mnc.....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM