bash脚本正则表达式

时间:2014-02-09 14:09:54

标签: regex bash

我不熟悉使用reg表达式的Linux脚本,

但我需要一个可以执行此操作的脚本:

copy A/first_image.jpg  to B/first_image/thumb.jpg

copy A/second_image.jpg to B/second_image/thumb.jpg

文件夹A中的每个图像都被复制到一个名为(在目录B中)的目录中,并重命名为thumb.jpg

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您使用文件名“globbing”,它与正则表达式相似但不同。您还可以使用循环和命令basename。像这样:

for file in A/*.jpg
do
    base=`basename $file .jpg`
    mkdir -p B/${base}
    cp A/${base}.jpg B/${base}/thumb.jpg
done

答案 1 :(得分:0)

A, B, C等的父目录运行此脚本:

for s in */*.jpg; do
    f="${s##*/}"
    d="${s%%/*}/${f%%.*}"
    mkdir -p "$d" 2>/dev/null
    cp "$s" "$d/thumb.jpg"
done