Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Linux 在UNIX中捕获模式的值并写入另一个文件_Linux_Unix_Awk_Sed_Pattern Matching - Fatal编程技术网

Linux 在UNIX中捕获模式的值并写入另一个文件

Linux 在UNIX中捕获模式的值并写入另一个文件,linux,unix,awk,sed,pattern-matching,Linux,Unix,Awk,Sed,Pattern Matching,我有一份档案 #InboxPulse.jmx request.threads3=10 request.loop=10 duration=300 request.ramp=6 #LaunchPulse.jmx request.threads1=20 request.loop1=5 duration1=300 request.ramp1=6 #BankRetail.jmx request.threads2=

我有一份档案

   #InboxPulse.jmx
    request.threads3=10
    request.loop=10
    duration=300
    request.ramp=6

   #LaunchPulse.jmx
    request.threads1=20
    request.loop1=5
    duration1=300
    request.ramp1=6

   #BankRetail.jmx
    request.threads2=30
     request.loop2=7
     duration2=300
     request.ramp2=6
我想捕捉以下内容的值:

   request.threads2
    request.threads1
    request.threads3
进入另一个文件,如下所示:

  10
  20
  30 
我试过这个

awk '/request.threads[0-9]{1,10}=/{print $NF}' build.properties >> sum.txt
其输出为:

  request.threads3=10
  request.threads1=20
  request.threads2=30
如何获得所需的输出?

在=号上拆分,在字段1上匹配,打印字段2:

awk -F'=' '$1 ~ /request.threads[0-9]+$/ {print $2}' build.properties >> sum.txt
在=符号上拆分,在字段1上匹配,打印字段2:

awk -F'=' '$1 ~ /request.threads[0-9]+$/ {print $2}' build.properties >> sum.txt
1提取值

$ grep -oP 'request.threads\d+=\K\d+' build.properties 
10
20
30
将>sum.txt添加到命令以将输出保存到文件

2如果需要这些值的总和

$ perl -lne '($v)=/request.threads\d+=\K(\d+)/; $s+=$v; END{print $s}' build.properties
60
1提取值

$ grep -oP 'request.threads\d+=\K\d+' build.properties 
10
20
30
将>sum.txt添加到命令以将输出保存到文件

2如果需要这些值的总和

$ perl -lne '($v)=/request.threads\d+=\K(\d+)/; $s+=$v; END{print $s}' build.properties
60

使用awk-F='/request../{..}'文件祝你好运。使用awk-F='/request../{..}'文件祝你好运。太棒了,谢谢Jonathan。我计划写一个while循环,让它写在一个fileYW上。我不清楚为什么你需要一个循环;awk提供了一个自动循环。但是,我没有足够的信息来确定while循环在某个地方是不合适的-这只是有点出乎意料。还要注意的是,所显示的脚本不允许等号前面有空格,但如果这是您想要的,则很容易修复。我希望捕获这些值并将其相加,然后将总数用作另一个表中的输入file@SirajSyed听Jonathan告诉你的-你既不需要也不想看到一个shell循环,这只是我们告诉你的一些原因。我计划写一个while循环,让它写在一个fileYW上。我不清楚为什么你需要一个循环;awk提供了一个自动循环。但是,我没有足够的信息来确定while循环在某个地方是不合适的-这只是有点出乎意料。还要注意的是,所显示的脚本不允许等号前面有空格,但如果这是您想要的,则很容易修复。我希望捕获这些值并将其相加,然后将总数用作另一个表中的输入file@SirajSyed听Jonathan告诉你的-你既不需要也不想看到一个shell循环,这只是我们告诉你的一些原因。