1 shell下批量出去文件名中的空格

执行看现象

Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP

Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP

上面的是执行for循环以后看到的;

然而源目录下的文件如下:

Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP

这样的话想要cat某个具体文件是拿不到的,所以需要去空格处理:

处理方式有很多:如 mv+sed    、rename方式。本次只做简单有效的方式--rename

rename 's/ /_/g' *                 ##表示把当前目录下所有的文件中有空格的都用_表示

Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP

Linux下批量重命名文件名为数字索引编号(0~N.xxx)的方法

现象:在处理一些数据集的时候,我们经常会碰到数据集的文件名是按时间戳(time stamp),或者其他方式命名的文件,比如下图所示:

Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP或者Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP

而我们在编写程序时,往往希望读入的这些数据集的文件名是一种更简洁的形式,比如按照索引(index)方式:1.jpg,2.jpg,3.jpg...,那么如何批量重命名一个文件夹下的文件名呢?方法很简单,只需要在Terminal里面进入数据集所在的文件夹,输入以下命令即可:

i=1; for x in *; do mv $x $i.jpg; let i=i+1; done

重命名后的数据集如下:

Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名-LMLPHP

 实用才是硬道理!!!

05-11 16:55
查看更多