Bash 猛击:不寻常的断线
我在bash中编写了一个小脚本,它读取一些HTML,并应打印链接的href:Bash 猛击:不寻常的断线,bash,url,line,href,break,Bash,Url,Line,Href,Break,我在bash中编写了一个小脚本,它读取一些HTML,并应打印链接的href: #!/bin/bash link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p') if [ "$(echo "$link" | grep '/fonts/list/style')" ] then echo "http://www.domain.com$link/10000" fi 而不是打印 http://
#!/bin/bash
link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p')
if [ "$(echo "$link" | grep '/fonts/list/style')" ]
then
echo "http://www.domain.com$link/10000"
fi
而不是打印
http://www.domain.com/fonts/list/style/home
words/1000
如何删除或避免此换行?您必须避开出现在
中的“
。
:
这对我起了作用:
#!/bin/bash
source="<li><span>19</span><a href=\"/fonts/list/style/home words\">linktext</a></li>"
link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p')
if [ "$(echo "$link" | grep '/fonts/list/style')" ]
then
echo "http://www.domain.com$link/10000"
fi
不要使用,,…来解析HTML。使用适当的HTML解析器。显示您如何设置
$source
,这可能就是问题所在。此外,您应该在echo“$source”
中引用它。谢谢。我对文章的代码进行了一些简化。如果我将链接保存在一个数组中,例如*catlinks[$I]=$(echo”)**,则会再次中断。你有什么想法吗?这取决于具体情况。更好的方法是跟随,不要使用bash。解决方法是将空格替换为%20作为空格。代码:link=${link//\%20}
http://www.domain.com/fonts/list/style/home
words/1000
#!/bin/bash
source="<li><span>19</span><a href=\"/fonts/list/style/home words\">linktext</a></li>"
link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p')
if [ "$(echo "$link" | grep '/fonts/list/style')" ]
then
echo "http://www.domain.com$link/10000"
fi
http://www.domain.com/fonts/list/style/home words/10000