Text-Processing

使用 Unix 命令實現排序 URL 正則表達式

  • August 11, 2020

我是正則表達式的新手,因為它們體現在 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。)

這是做你想做的嗎?

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可以派上用場。希望這可以幫助!

引用自:https://unix.stackexchange.com/questions/603675