我有一个文件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