我有一個文件channels.xml像這樣的一個結構,閱讀,長4000線做一個sh文件從一個XML文件
<!--begin_channel-->
Rai 1.png
<!--end_channel-->
Rai 1 +2HD.png
Rai 1 +1HD.png
<!--begin_channel-->
Rai 2.png
<!--end_channel-->
Rai 2 +2HD.png
Rai 2 +1HD.png
.
.
我需要做一個文件channels.sh這樣的:
cp /cygdrive/c/ProgramData/ServerCare/data/picons/Rai_1.png /cygdrive/c/ProgramData/ServerCare/data/picons/duplicati/Rai_1_+2HD.png
cp /cygdrive/c/ProgramData/ServerCare/data/picons/Rai_1.png /cygdrive/c/ProgramData/ServerCare/data/picons/duplicati/Rai_1_+1HD.png
cp /cygdrive/c/ProgramData/ServerCare/data/picons/Rai_2.png /cygdrive/c/ProgramData/ServerCare/data/picons/duplicati/Rai_2_+2HD.png
cp /cygdrive/c/ProgramData/ServerCare/data/picons/Rai_2.png /cygdrive/c/ProgramData/ServerCare/data/picons/duplicati/Rai_2_+1HD.png
我需要用cygwin來做,我有一個腳本可以在ubuntu下做到,但是cygwin無法正常工作。這是腳本:
#!/bin/bash
#colori
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
if [ $# -ne 4 ]
then
echo -e "${RED}ERRORE${NC}, inserire $0 filein fileout pathlogo_from pathlogo_to"
echo -e "${RED}Ricorda${NC} le enstensioni!"
exit 0
fi
if [ -f $2 ]
then
echo -n -e "File $2 esistente, vuoi ${RED}sovrascrivere${NC}?(Y/n) "
read scelta
if [ $scelta != 'Y' ]
then
exit 0
else
rm $2
fi
fi
awk '/\<!--begin_channel--\>/{flag=1; next} /\<!--end_channel--\>/{flag=0} flag' $1 > temp
while read line
do
awk "/$line/,/<!--begin_channel-->/ " $1 | grep -v "$line" | grep -v "^<" > tmp
for channel in `cat tmp`
do
channel=`echo $channel | tr ")" "_" | tr "(" "_" | tr ":" "_"`
echo "cp $3/$line $4/$channel"
done
done <temp >> $2
rm temp
rm tmp
echo -e "${GREEN}File $2 creato correttamente${NC}"
我認爲錯誤是關於這條線
awk "/$line/,/<!--begin_channel-->/ " $1 | grep -v "$line" | grep -v "^<" > tmp
要運行它,我用命令
{ bash } »./script.sh channels.xml channels.sh /cygdrive/c/ProgramData/ServerCare/data/picons/ /cygdrive/c/ProgramData/ServerCare/data/picons/duplicati/
有人可以幫我解決這個問題或寫一個新的?
請解釋什麼,「但Cygwin的不工作」,意味着什麼?有錯誤消息嗎?我的第一個想法是,你正在使用錯誤的工具,因爲你應該使用的東西,可以讀取XML文件,如xmllint – grail
該腳本看起來像運行,但最終我收回一個錯誤,如「我不能刪除tmp文件找不到「,我可以找到文件channels.sh但是是空的。看起來像cygwin不喜歡第二個命令awk。該腳本在ubuntu下運行,並且我不知道該版本安裝在cygwin中。也許只是關於命令構造的一個小錯誤。 – Tapiocapioca