如何将查找后的数字与awk、egrep进行比较
我有一些file.txt,里面有很多信息。文件中的输入如下所示:如何将查找后的数字与awk、egrep进行比较,awk,grep,Awk,Grep,我有一些file.txt,里面有很多信息。文件中的输入如下所示: 283838 . . 111从4444开始 . 255 这些数字可以有任意位数 我需要找到并比较这两个数字 如果它们相等,则打印文件名;如果它们不相等,则打印它们相等,则反向meneaning文件中只有一个字符串的数字之间有单词“from” 我试着做我喜欢的事 Awk'/[0-9]+from./{print$0}file.txt | egrep-o'[0-9]+' 使用此命令,我得到了这两个数字,但我现在正在叠加,不知道如何将它们
283838
.
.
111从4444开始
.
255
这些数字可以有任意位数
Awk'/[0-9]+from./{print$0}file.txt | egrep-o'[0-9]+'
使用此命令,我得到了这两个数字,但我现在正在叠加,不知道如何将它们与显示的样本进行比较,请尝试以下内容。简单的解释是:通过正则表达式获得相应的数字值,然后比较它们以检查3种情况,即它们是大的、小的或相等的,这将在将来添加详细的解释
awk '
match($0,/<[a-zA-Z]+[0-9]+/){
val1=substr($0,RSTART,RLENGTH)
gsub(/[^0-9]*/,"",val1)
match($0,/[0-9]+[a-zA-Z]+>/)
val2=substr($0,RSTART,RLENGTH)
gsub(/[^0-9]*/,"",val2)
if(val1>val2){
print "val1("val1 ")is Greater than val2("val2")"
}
if(val2>val1){
print "val2("val2 ")is Greater than val1("val1")"
}
if(val1==val2){
print "val1("val1 ")is equals to val2("val2")"
}
}' Input_file
欢迎来到SO,感谢分享您的努力(继续努力)。请共享输入和预期输出的示例,以使您的问题更清楚,谢谢。@User123:建议您编辑您的问题,并用预期输出显示您的示例输入。问题是,例如“222 from 333”只有一个,但有许多字符串以“”开头,这些数字可以是0到n@User123,ok,现在编辑代码,请检查一次,让我知道它是如何运行的?@User123,是的,我编辑的代码会处理好它,请检查一次,让我知道它是如何运行的。我会在1小时内检查它,并让你知道,谢谢你的帮助。谢谢你的帮助,只需稍加修改,这工作就完美了,谢谢。
val2(333)is Greater than val1(222)