我想在 Linux 中使用以下命令编写一个 bash 脚本AWK
SED
grep
curl
,找到一个特定的单词然后计算它。
这是我的脚本:
#!/bin/sh
echo "URL:"
read url
urlsou=$(curl -s "$url")
result=$(awk '/test/ {f=1} /link/ {g=1} /WOW/ {h=1} !f && !g && h; /testend/ {f=0} /linkend/ {g=0} /wow/ {h=0}' | grep -o "WOW" | grep -c "WOW")
echo "Total :" "$result"
当我使用我的脚本时我得到 0,但是当我只使用AWK
以下命令和AWK
具有 HTML 源的文件时,awk '/test/ {f=1} /link/ {g=1} /WOW/ {h=1} !f && !g && h; /testend/ {f=0} /linkend/ {g=0} /wow/ {h=0}' example | grep -o "WOW" | grep -c "WOW"
我得到了正确的答案。
这是我的示例文件(但我的真实文件非常复杂):
WOW1wow
linklinkend
wow1WOWwow123WOW
testtestend
WOWWwow
link WOW test testend linkend wow
WOW2wow
link WOW 123 wow linkend
- 尝试
awk '/test/ {f=1} /link/ {g=1} /WOW/ {h=1} !f && !g && h; /testend/ {f=0} /linkend/ {g=0} /wow/ {h=0}' example | grep -o "WOW" | grep -c "WOW" example
结果为5 - 尝试
awk '/test/ {f=1} /link/ {g=1} /WOW/ {h=1} !f && !g && h; /testend/ {f=0} /linkend/ {g=0} /wow/ {h=0}' example | grep -o "WOW" example
结果为4 - 尝试使用脚本结果为0
正确答案是 5
我认为问题在于如何在脚本中将 urlsou 变量传递给 AWK,或者如何为 urlsource 创建临时文件。
我的问题是什么,我如何在没有任何编程语言或额外命令的情况下修复它?