Bash 如何在shell脚本中从文本文件中检索数值?
以下内容已写入名为test.txt的文本文件中。如何在shell脚本中检索挂起和完成的计数值? 计数:0Bash 如何在shell脚本中从文本文件中检索数值?,bash,Bash,以下内容已写入名为test.txt的文本文件中。如何在shell脚本中检索挂起和完成的计数值? 计数:0 计数:0 以下是我尝试过的: #!/bin/bash echo echo 'Fetching job page and write to Jobs.txt file...' curl -o Jobs.txt https://cms.test.com completestatus=`grep "completed" /home/Jobs.txt | awk -F "<p|<
计数:0
以下是我尝试过的:#!/bin/bash
echo
echo 'Fetching job page and write to Jobs.txt file...'
curl -o Jobs.txt https://cms.test.com
completestatus=`grep "completed" /home/Jobs.txt | awk -F "<p|< p="">" '{print $2 }' | awk '{print $4 }'`
echo $completestatus
if [ "$completestatus" == 0 ]; then
#/bin/bash
回声
echo“正在获取作业页并写入Jobs.txt文件…”
curl-o Jobs.txthttps://cms.test.com
completestatus=`grep“completed”/home/Jobs.txt|awk-F“{print$2}”|awk'{print$4}”`
echo$CompleteTastus
如果[“$completestatus”==0];然后
grep
和awk
命令几乎总是可以组合成一个awk
命令。2个awk
命令几乎总是可以组合成1个awk
命令
这就解决了你眼前的问题(使用一些awk类型的铸造技巧)
请注意,您可以将grep
和awk与
awk -F : '/completed/' test.txt
只筛选到完成的行,输出
<p class=completed>Count: 0</p>
<p class=completed>Count: 0</p>
0</p>
0
输出
<p class=completed>Count: 0</p>
<p class=completed>Count: 0</p>
0</p>
0
输出
<p class=completed>Count: 0</p>
<p class=completed>Count: 0</p>
0</p>
0
输出
<p class=completed>Count: 0</p>
<p class=completed>Count: 0</p>
0</p>
0
最后,我们得出上面的解决方案,将代码封装在一个现代的命令替换中,即$(…cmds…)
中,并将输出发送到completedStatus=
分配
如果您认为正在输出的是
+0.0
加法,您可以将文件更改为显示completed count=10,输出将为10
IHTH另一个
awk
completedStatus=$(awk -F'[ :<]' '/completed/{print $(NF-1)}' file)
completedStatus=$(awk-F'[:如果我没弄错,您只需要提取挂起或完成的值。如果是这样
然后用SED,
请检查下面的脚本
!/bin/bash
file=“$1”
回声“简单”
cat$1|sed's/^.*=\“\([a-z]*\)\”>计数:\([0-9]\)计数:\([0-9]\)计数:\([0-9]\)如何获取已完成的计数?.curl-o Jobs.txt状态=`grep“completed”/home/Jobs.txt您将其称为“文本”文件,但将其包装为XML并不重要,这样您就有了一整套更适合此类查询的工具。不要试图将其转换为shell脚本和eval
这是一个安全漏洞的配方。