感谢阅读和阅读你的建议。我正在将文件移动到相应的目录中,只有部分文件使用_
,有些使用-
(下划线和连字符)作为分隔符。有没有办法测试不同的分隔符?
E.g:
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命令时,我希望能够区分分隔符。那可能吗?在此先感谢您的时间和建议。 干杯!
答案 0 :(得分: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支持的基本模式的扩展。
我希望这会有所帮助。