我想重命名目录中的许多文件,以便根据特定约定可以识别它们:
SURFACE_OBS:2019062200
SURFACE_OBS:2019062206
SURFACE_OBS:2019062212
SURFACE_OBS:2019062218
SURFACE_OBS:2019062300
等等。
如何在UNIX中将它们重命名为以下名称?
SURFACE_OBS:2019-06-22_00
SURFACE_OBS:2019-06-22_06
SURFACE_OBS:2019-06-22_12
SURFACE_OBS:2019-06-22_18
SURFACE_OBS:2019-06-23_00
2条答案
按热度按时间mbskvtky1#
一个使用
mv
和参数扩展的bash shell循环可以做到这一点:此循环将选取与模式匹配的每个文件:
*
--任何内容:
--冒号[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]
-- 10位数字...然后通过在所需位置插入短划线和下划线对其进行重命名。
我仔细地选择了循环的通配符,这样它就可以匹配“输入”文件,而不是重命名的文件。如果实际的文件名有边缘情况,导致通配符失败(并因此再次重命名文件),请根据需要调整模式。
ss2ws0br2#