首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash脚本读取和分析文本文件

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

Stack Overflow用户
提问于 2021-12-03 10:35:43
回答 2查看 181关注 0票数 1

我想读取一个日志文件,并希望提取5-6数字,这是写在后面的关键字“工资”。然后再分析一下工资是否在2000以上。如果有一个以上2000年以上,它是一个跨国公司,否则未知。写完工资后,行的结尾大部分,但有时会有电子邮件选项。

我的脚本现在看起来是这样的。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-03 11:17:13

这可以在这样一个简单的awk中完成:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2021-12-03 10:45:26

由于您似乎在使用GNU grep,所以可以直接使用grep -oP 'salary *0*\K[1-9][0-9]*'获取薪资值,然后可以使用if [ $salary -gt 0 ]检查薪资。

在线演示

代码语言:javascript
复制
#!/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.....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70212931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档