我只是学习使用REGEX,AWK和SED.我目前有一组我想要重命名的文件 - 它们都位于一个目录中.
命名模式是一致的,但我想重新安排文件名,这里是格式:
01._HORRIBLE_HISTORIES_S2.mp4
02._HORRIBLE_HISTORIES_S2.mp4
Run Code Online (Sandbox Code Playgroud)
我想将它们重命名为HORRIBLE_HISTORIES_s01e01.mp4 - 其中e01是从第一列收集的.我知道我想从第一列中获取"01",将其填入变量中,然后将其粘贴到每个文件名中的S2之后,同时我想将其从文件名的开头与"."一起删除. _",另外我想将"S2"改为"s02".
如果有人会这么善良,你能帮助我用awk/sed写一些东西并解释一下我可以从中学到的程序吗?
我有一个数百行的文件格式如下:
#blah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/xyz(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#xblah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/hkf(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#ablah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/abc/.*(|/)$ http://www.blah.com/404.html [R=301,L,NC]
Run Code Online (Sandbox Code Playgroud)
我想在awk/sed中创建一个脚本,使用每组文本第三行中的第二个参数对该文件进行字母顺序排列.在这个文件的情况下,它是"abc","hkf"或"xyz",可以是任何东西 - 它们是在这个apache重定向文件中创建的重定向.
我想我想做的是:
我的预期输出看起来像这样:
#ablah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/abc/.*(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#xblah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/hkf(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#blah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/xyz(|/)$ http://www.blah.com/404.html [R=301,L,NC]
Run Code Online (Sandbox Code Playgroud)
这有意义吗?有一个更好的方法吗?
ps我的目的是使脚本可移植,以便它可以在这个结构的几个文件上使用.在建议解决问题的代码时,请尽可能地拼出像我这样的新职级,开始了解如何有效地解决这个问题,并能够扩展最终结果.
任何和所有的帮助非常感谢.