我正在嘗試編寫一個基於文件名創建目錄的Unix腳本,並將這些文件移動到指定的目錄。Unix基於文件名創建目錄並將文件移動到目錄
文件模式: * PLAIN * ン .PDF(例如4520009455604706_PLAIN_12 .PDF)被創建
目錄:CY ン(例如賽揚) [注 :需要一個步驟來檢查目錄是否存在,如果不存在,則創建新目錄]
創建上述目錄後,我需要將所有文件ching * PLAIN * .pdf到目錄/ Cy21。
[編輯]下面添加解決方案。
我正在嘗試編寫一個基於文件名創建目錄的Unix腳本,並將這些文件移動到指定的目錄。Unix基於文件名創建目錄並將文件移動到目錄
文件模式: * PLAIN * ン .PDF(例如4520009455604706_PLAIN_12 .PDF)被創建
目錄:CY ン(例如賽揚) [注 :需要一個步驟來檢查目錄是否存在,如果不存在,則創建新目錄]
創建上述目錄後,我需要將所有文件ching * PLAIN * .pdf到目錄/ Cy21。
[編輯]下面添加解決方案。
我的解決辦法是這樣的:
#!/bin/sh
for file in *.pdf
do
if test -s $file
then
cycle=`echo $file | awk -F'.' '{print $1}' | awk '{print substr($0,(length($0)-1))}'`
dir="./Cy"$cycle
if [ -d $dir ]
then
mv $file ./Cy$cycle
else
mkdir $dir
mv $file $dir
fi
else
echo "File error"
echo $file
fi
done
腳本您發佈工作正常在我的箱子。錯誤意味着你在這裏發佈的代碼與你試圖運行的代碼不一樣。你確定它是相同的代碼嗎? –
是的,我甚至嘗試了一個簡單的循環,但仍然得到相同的錯誤。我使用ksh shell來執行這個腳本:'sh test.sh'。 – Bally
sh和ksh不是一回事。你確定/ bin/sh是ksh嗎? –