每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。
分类: LINUX
2011-05-14 16:10:10
文本:
Welcome to the world of regexp!
现在要去掉所有的HTML标签,使输出结果为:
Hello World
Welcome to the world of regexp!
[解析]
思路是替换<.*>的为空就等于剔除了所有这些符号,重点在于 [^>] 按照正则贪婪匹配的原则,如果只是排除<.*> 这样的内容,它只会匹配第一个 < 和最后一个 > 也就是改行的全部内容,所以在这个内容当中不能再出现< >这2个符号,所以排除一个即可。星号是个数量单位,可以理解为零或多个。
[解析]
在awk中默认的记录分割符是换行,在这里设置 < > 为记录分割符,输出的时候默认的输出记录分割符是换行,这里我们把它设置为空,即不再输出空行了。最后pattern为1,即是打印全行。
[解析]
这句看似和上句差不多,实质上有很大的区别,NF 对于不输出空行是个妙用。这句和上句最大的区别就在于没有设置 -vORS="" ,而结果上还是和上一句完全一样呢?当是空行NF是为0,在pattern里0是条件为假,则不会执行后面省略的{print $0},所以不会输出空行。