首先,有没有比使用 sed 和 awk 更好的命令行 Linux 方法来处理使用 wget 下载的 HTML 页面中的文本?如果是这样,请告诉我或链接到文档。
其次,我对以下表达方式感到困惑...既然^
从新行的开头搜索,为什么空白gsub(/[^a-z]]*/, " ")
替换非字母字符,逗号,
在这里做什么?为什么这个表达方式有无与伦比的]
?
对于 HTML 的处理,您需要描述要对处理执行的操作。
当^
字符不在字符类中时,它充当"行首",并且可以指示行的开头(例如,如果正则表达式/^[^a-z]/
)。 当它位于字符类(括在方括号中,[]
)内并且是第一个字符时,则它是一个元字符,意思是"除以下字符之外的任何内容"。
gsub
函数是全局搜索和替换操作:
gsub(/[^a-z]]*/, " ")
表示"替换不在 A-Z 中并后跟零个或多个右方括号的任何内容,并用空格(双引号中的字符串" "
)。 逗号是参数分隔符,将正则表达式参数与替换字符串参数分开。正则表达式中的第二个右方括号令人惊讶;这很容易是一个错误。
因为gsub
函数没有第三个参数,所以它在当前输入行$0
上运行。