![使用 Unix 命令实现排序 URL 正则表达式](https://linux22.com/image/178295/%E4%BD%BF%E7%94%A8%20Unix%20%E5%91%BD%E4%BB%A4%E5%AE%9E%E7%8E%B0%E6%8E%92%E5%BA%8F%20URL%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F.png)
我是正则表达式的新手,因为它们体现在 sed、awk、sort、grep 和其他 Unix 二进制文件中。
我知道如果我使用以下正则表达式对文本编辑器 (BBEdit) 中的 URL 列表进行排序:
(https?)://([a-z0-9]+[.])*(.+?)[.](.+?)/(.*)$
\3\t\4\t\2\t\5\t\1
它产生了我想要的最终结果。
我想在 Unix 命令行上对此进行排序,这样它就可以自动完成,而无需我在 BBEdit 的 GUI 中触发排序。但是,我对 sed、awk、sort 等没有足够的了解,无法正确翻译它。
如果有人能帮助我给出答案,或许还可以提供一些教育,我将不胜感激。 (我确实有这些命令的 GNU 版本,如果重要的话,我当前的 shell 是 zsh。)
答案1
这是你想要的吗?
cat urls.txt | sed -r -e "s|(https?)://([a-z0-9]+[.])*(.+?)[.](.+?)/(.*)$|\3\t\4\t\2\t\5\t\1|g"
我不是sed
出口商,但建筑sed -e -r "s|someregex|replacedwitthis|g" < somefile.txt
可以派上用场。希望这可以帮助!