linux文件批量操作

  1. 批量递归重命名文件后缀名
    1
    find . -maxdepth 2 -name "*.jpg" | rename "s/.jpg/.jpeg/"
  1. 批量压缩子文件夹
1
2
3
4
5
6
7
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: 05OCRCNNAccelerationOCRresult7_merge_bak 000P8_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