如何去除lynx --dump -listonly输出中的编号及无关文本
我来帮你搞定这个需求!要从lynx --dump -listonly index.html的输出里提取纯URL,去掉那些烦人的编号和“References”“Visible links”这类无关文本,用几个简单的命令行工具就能轻松实现:
方法1:用sed处理
这个命令会直接过滤出带编号的行,同时去掉行首的编号和空格:
lynx --dump -listonly index.html | sed -n '/^[0-9]\+\./ s/^[0-9]\+\.\s*//p'
-n:只输出我们处理后的匹配行/^[0-9]\+\./:匹配以数字+点开头的行(就是那些带编号的URL行)s/^[0-9]\+\.\s*//:把行首的数字、点和后面的空格全部删掉p:输出处理后的内容
方法2:用awk处理
awk也能轻松完成这个任务,逻辑和sed类似:
lynx --dump -listonly index.html | awk '/^[0-9]+\./ {sub(/^[0-9]+\.\s*/, ""); print}'
- 先匹配带编号的行,然后用
sub替换掉开头的编号部分,最后打印处理后的URL
方法3:grep+cut组合拳
先用grep过滤出带编号的行,再用cut截取URL部分:
lynx --dump -listonly index.html | grep '^[0-9]\+\.' | cut -d' ' -f2-
- grep过滤出目标行后,cut以空格为分隔符,取从第二个字段开始的所有内容(也就是URL)
举个实际例子,假设你的lynx输出是这样的:
References Visible links 1. https://example.com/page1 2. https://example.com/page2 3. https://example.com/page3
用上面任意一个命令处理后,都会得到干净的纯URL输出:
https://example.com/page1 https://example.com/page2 https://example.com/page3
内容的提问来源于stack exchange,提问作者Caucasian Malaysian
相关产品推荐
相关产品推荐

