使用 Unix 命令实现排序 URL 正则表达式

使用 Unix 命令实现排序 URL 正则表达式

我是正则表达式的新手,因为它们体现在 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可以派上用场。希望这可以帮助!

相关内容