Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将查找后的数字与awk、egrep进行比较_Awk_Grep - Fatal编程技术网

如何将查找后的数字与awk、egrep进行比较

如何将查找后的数字与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]+' 使用此命令,我得到了这两个数字,但我现在正在叠加,不知道如何将它们

我有一些file.txt,里面有很多信息。文件中的输入如下所示:

283838

.
.
111从4444开始

.
255

这些数字可以有任意位数

  • 我需要找到并比较这两个数字
  • 如果它们相等,则打印文件名;如果它们不相等,则打印它们相等,则反向meneaning文件中只有一个字符串的数字之间有单词“from” 我试着做我喜欢的事
  • 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)