通过 sed 或 awk 使用数字查找和替换路径 url

finding and replacing path url using numbers by sed or awk

我有一个大文件包含超过 200000 个数字未排序 我想根据前两个数字将 url 目录 1/2/ 添加到我的链接中,例如我的文件:all.mp3

19471.mp3
19472.mp3
28463.mp3
28464.mp3
35437.mp3
35435.mp3

预计看起来像这样

http://www.example.com/files/1/9/19471.mp3
http://www.example.com/files/1/9/19472.mp3
http://www.example.com/files/2/8/28463.mp3
http://www.example.com/files/2/8/28464.mp3
http://www.example.com/files/3/5/35437.mp3
http://www.example.com/files/3/5/35435.mp3

您可以使用 sed 来执行此操作:

$ sed -r 's~(.)(.)~http://www.example.com/files///&~' file
http://www.example.com/files/1/9/19471.mp3
http://www.example.com/files/1/9/19472.mp3
http://www.example.com/files/2/8/28463.mp3
http://www.example.com/files/2/8/28464.mp3
http://www.example.com/files/3/5/35437.mp3
http://www.example.com/files/3/5/35435.mp3

捕获前两个字符并将它们用于替换字符串(</code> 和 <code>)。 & 指的是整场比赛。

如有必要,您可以在捕获组中使用 [0-9] 而不是 . 来使匹配更严格一些。如果您的 sed 版本不支持扩展的正则表达式(-r-E 开关),您必须转义括号:

$ sed 's~\(.\)\(.\)~http://www.example.com/files///&~' file