我们需要解析网站数据,sed和awk是完成这项工具的主要工具,
比如我们获取到了一个演员的评级列表
如何通过文本处理工具来解析相同的数据
我们首先获取相信的信息命令行
lynx -dump
http://www.johnorres.net/BoxOfficefemaleList.html
| \
grep -o “Rank-.*” | \
sed ‘s/Rank-//;s/\[[0-9]\+\]//’ | \
sort -nk 1| \
awk’
{
for(i=3;i<=NF;i++){$2=$2″ “$i}
printf “%-4s %s\n”,$1,$2;
}’ > actresslist.txt
那么工作的原理在于
Lynx是一个基于命令行的网页浏览器,会打印出网站的文本版本
我们可以利用其避免移除HTML标记
然后解析所有Rank开头的行
sed ‘s/Rank-//; s/\[0-9]\+\]//’
根据评级情况进行排序,
我们使用awk来指定宽短,保持演员的评级信息和姓名之间的空隙, %-4s指定了4个字符的宽度
进行了拼接