接上一篇 《利用 Bash 脚本编写自动抓取学校图书馆借阅信息的爬虫 Part1
》
抓下来的数据是一大堆的 HTML 标签夹杂着无用的玩意,那么就需要把有用的过滤出来。在 Bash 环境下就是需要利用一些命令来过滤掉没用的字符。
我这里用到三个命令来过滤
sed # sed是非交互式的编辑器,它读取文件到自己的缓冲区然后再作修改。
# 默认情况下,所有的输出行都被打印到屏幕上。[1]
awk # awk是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔
# 符将每行切片,切开的部分再进行各种分析处理。[2]
tr # 可以将 tr 看作为 sed的(极其)简化的变体:它可以用一个字符来替换
# 另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。
# 这就是所有 tr所能够做的。 [3]
sed
命令在我的脚本里用得最多,通过输入一组符合 sed 格式的命令来达到过滤文本内容。sed
使用 命令/匹配/选项
的格式来作为一条命令,这里只涉及到我用到的命令。
#在所有“<td”前面换行
#准确点来说是把所有的“<td”换成“\n<td”,以此达到换行的目的
cat file | sed 's/<td/\n<td/g'
#删掉第 1-107 行
cat file | sed '1,107d'
cat file | sed '480,$d'
awk
命令我只用来格式化输出一些数据。例如可以不替换直接用html里的一些符号分割字段。
- [1] sed命令详解
- [2] linux awk命令详解
- [3] linux tr命令详解
网友评论