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