0

我在 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

var 源在我的示例中:

<li><span>19</span><a href="/fonts/list/style/home words">linktext</a></li>

问题:脚本打印不

http://www.domain.com/fonts/list/style/home words/1000

而不是打印

http://www.domain.com/fonts/list/style/home
words/1000

如何删除或避免此换行符?

4

1 回答 1

0

你必须逃避"出现在<li>...

这对我有用:

#!/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
于 2013-06-21T15:03:24.980 回答