使用Vim过滤旧书签URL列表以排除不再使用的网站

yk9xbfzb  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(115)

我试图学习更多关于Vim和Linux命令行的知识;我正在做的项目是
正在尝试将浏览器导出的bookmarks.html转换为仍有效的URL***的纯文本列表。***
1.首先,我使用lynx -dump -listonly bookmarks.html > bookmarks将HTML格式设置为纯文本:

1. https://example.com/vim-is-cool.html
   2. https://example.com/index.html

1.使用Vim去除数字和前导空格(:% s/.\+ /
1.使用Vim删除除顶级域(:%! cut -d'/' -f1,2,3)以外的所有内容
1.使用Vim删除:sort u的重复项
1.要测试其中一个链接,我将用途:

curl -I https://www.example.com | grep HTTP | sed 's/HTTP\/1\.1 //g'
200 OK

现在,我想:
1.通过相同的命令检查短URL的候选列表(我不知道如何对Vim缓冲区中的每一行迭代相同的命令)
1.过滤包含所有完整URL的文件,根据cURL是否为短URL获得200 OK(这部分也超出了我的能力范围)
1.将剩余的完整URL列表写入bookmarks4(我很可能可以处理这个问题)
如果可能的话,我希望在不使用shell/bash编写脚本或离开Vim的情况下完成所有这些工作。

8yparm6h

8yparm6h1#

这可能对您有用(所有GNU实用程序都使用bash):

lynx -dump -listonly bookmarks.html |
grep -o 'https\?://[^/]*' |
sort -u |
parallel -k 'curl -I -m2 {} |& grep -q "HTTP/[0-9.]\+ 200" && echo {}' >bookmarks4

使用lynx设置链接格式。
使用grep格式化url。
使用sort可以排序和删除重复项。
使用parallel用curl检查url,用grep检查输出是否有200回复,将符合要求的url输出到bookmarks4。

相关问题