Bash 如何在shell脚本中从文本文件中检索数值?

Bash 如何在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|<

以下内容已写入名为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|< 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
这是一个安全漏洞的配方。