silver lining's blog

Linux文件批量操作

  1. 批量递归重命名文件后缀名
    1
    find . -maxdepth 2 -name "*.jpg" | rename "s/.jpg/.jpeg/"
  1. 批量压缩子文件夹
1
2
3
4
5
6
7
#!/bin/bash
#run under the root dir
dirList=`ls -p $1 |grep / |tr -d /`
for dir in $dirList
do
tar -czvf $dir.zip $dir/
done
  1. 批量删除指定名字的文件
1
find . -maxdepth 2 -name "bing*" -exec rm -f {} \;
  1. 批量修改图片尺寸
1
find ./ -name '*.jpg' -exec convert -resize 600x480 {} {} \;
  1. Windows Linux 显示某个文件下收文件的全路径
1
2
3
dir /B /S D:\000books\*.jpg > namelist.txt
find /000books -name "*.*"> namelist
  1. 从路径 string 中提取文件夹名字作为lable
1
2
3
4
line = "E:\005OCRCNNAcceleration\OCR\result7_merge_bak\0000\P8_001_train1_P2.jpg";
string res = line.substr(0, line.find_last_of('\\'));
string lab = res.substr(res.find_last_of('\\')+1);
label = atoi(lab.c_str());
  1. 从txt中随机抽样,抽取部分行
1
2
#sort随机排序,然后取前500,实现出来就是随机抽取500. 重定向到val_sample.txt
sort -R val.txt | head -500 > val_sample.txt

9.

1
2