0

感谢您的阅读和您的建议。我将文件移动到各自的目录中,只有一些文件使用_和一些使用-(下划线和连字符)作为分隔符。有没有办法测试不同的分隔符?

例如:

ParentDir
    1897/
    1898/
    1994summer/
    file-1897-001.txt
    file-1897-002.txt
    file-1898-001.txt
    file-1898-002.txt
    file_1994summer_001.txt
    file_1994summer_002.txt

我一直在处理以下(详细以便我能理解)shell 脚本:

!/bin/sh
for f in *.jp2
do
base=${f%.txt}
echo "base fileName is $base"
fileName=`echo "$base" | cut -f 2 -d _`
echo "truncated fileName is $fileName"
dir=$fileName
echo "Directory is $dir"
mv -v "$f" "$dir"
sleep 1
done

使用 cut 命令时,我希望能够区分分隔符。那可能吗?提前感谢您的时间和建议。干杯!

4

1 回答 1

1
case "${fName}" in 
    *_* ) underscore_funnyFace_processing "${fName}" ;; 
    *-* ) hyphen_funnyFace_process "${fName}" ;; 
    * ) all_other_processing "${fName}" ;; 
esac

我几乎可以肯定 bourne shell 支持案例处理。无权使用一个进行测试。

bourne/bash/ksh/zsh 之间的区别在于每个 shell 具有的 shell 通配符模式,作为 bourne shell 支持的基本模式的扩展。

我希望这有帮助。

于 2012-04-21T20:23:52.977 回答