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循环,这只是我们告诉你的一些原因。