gpt4 book ai didi

bash - 在 shell 中使用 lynx,存储转储以供进一步 grep

转载 作者:行者123 更新时间:2023-11-29 09:24:04 25 4
gpt4 key购买 nike

是否有可能在 bash 脚本中使用 lynx 作为浏览器获取网页内容将它存储在一个变量中(实际上只有一个网络访问页面)然后做很多 grep 来提取信息?

我试过类似的东西:

content="$(lynx -dump -nolist $url')"
var1=`cat "$content" | grep myre1`
var2=`cat "$content" | grep myre2`

但我在分配之间搞砸了,使用引号、反引号等等。

如果有人有另一个没有 lynx 的解决方案:我正在搜索类似 lynx --dump 的东西,它是“浏览器渲染 View ”(而不是 wget),最好会避免在系统上创建文件(或者如果这是唯一的解决方案,我该如何继续删除这个临时文件?)

谢谢你和最好的问候

最佳答案

刚刚修复了您的代码。我想回答这个问题

but i mess up between assignations, using quotes, backquotes and so on.

  • 请选择$()而不是反引号,通常没有区别,但是 $() 的一大优势是你可以嵌套它。此外,在某些字体中,反引号可能看起来类似于单引号,如果您将代码粘贴到某些网站,它可能会中断,因此 $() 更稳定。
  • 始终放置 " "围绕参数。示例:echo "$myvar" , wget "$myurl"
  • 使用[[ ]]而不是 [ . [test命令位于/bin/test(和/bin/[ 通常符号链接(symbolic link)到/bin/test),而 [[ ]]是 bash 语法。 (不过现在好像 [ 是一个内置的 bash)
  • 不要使用 let对于数学运算,使用 (( )) .示例:(( a = 5 * b )) , echo $(( a / 20 ))
  • 使用(( ))用于数学比较而不是 [[ ]]因为它允许直观 <= < > >=运营商。示例:if (( a <= b )); then ...而不是 if [[ $a -le $b ]]; then ...
  • 更喜欢 bash 字符串操作而不是 tr和其他实用程序。 Some of themA bit more .示例:使用 ${myvar^^}而不是 echo "$myvar" | tr a-z A-Z
  • 大多数命令允许您指定文件名。例如,不要使用 cat filename | grep somestr , 使用 grep somestr filename相反。

您的固定代码:

content=$(lynx -dump -nolist "$url")
var1=$(grep myre1 <<< "$content")
var2=$(grep myre2 <<< "$content")

关于bash - 在 shell 中使用 lynx,存储转储以供进一步 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18353469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com