String 我想更换' 与';在狂欢节上
我只想替换String 我想更换' 与';在狂欢节上,string,bash,replace,String,Bash,Replace,我只想替换'与”一起使用,但它不起作用。真正的问题是,谷歌搜索“';”与“bash”的结合并没有真正的帮助 这是我制作的简单脚本 #!/bin/bash STR=$(curl http://www.billboard.com/charts/billboard-200) I=0 while true; do let "I += 1" #Find album STR=${STR#*Song Hover-} SONG=${STR%%div*}
'代码>与”
一起使用,但它不起作用。真正的问题是,谷歌搜索“';”与“bash”的结合并没有真正的帮助
这是我制作的简单脚本
#!/bin/bash
STR=$(curl http://www.billboard.com/charts/billboard-200)
I=0
while true; do
let "I += 1"
#Find album
STR=${STR#*Song Hover-}
SONG=${STR%%div*}
SONG=${SONG:0:${#SONG}-5}
STR=${STR#*div}
SONG = ${SONG/"'"/"'"} #This line does not work
echo ${SONG}
SONGS[I]=${SONG}
#find artist
STR=${STR#*Artist Name}
ARTIST=${STR%%a>*}
ARTIST=${ARTIST:3:${#ARTIST}-6}
STR=${STR#*a>}
echo ${ARTIST}
ARTISTS[I]=${ARTIST}
TEST=${STR#*Song Hover-}
if [ ${#TEST} -eq ${#STR} ]; then
break;
fi
done
空格把你搞砸了:
SONG = ${SONG/"'"/"'"}
需要
SONG=${SONG/"'"/"'"}
在=
周围有空格使它不是一个赋值,而是一个常规命令,运行一个名为SONG
的程序,第一个参数=
,第二个参数取决于实际的歌曲名。神奇的关键字:bash
+html
+实体
++解码。快乐的谷歌搜索。很好的早期S.O.问题,除了你应该告诉我们你需要什么输出,给你STR=…
input。祝你好运。尽管如此,我还是强烈建议你使用XMLStarlet这样的工具来进行正确的XML解析,而不是这里的字符串分析方法……使用正确的XML解析器也可以为你进行实体解码,这使得这个问题完全没有意义。顺便说一句,为你自己的变量使用所有大写名称是不好的形式;所有caps名称都保留用于影响系统的变量(HOME
、PATH
、LANG
,等等)和shell(PS1
、PWD
,等等),同时保留至少带有一个小写字符的名称供应用程序使用。请参阅IEEE1003.1的第四段,记住shell变量和环境变量共享一个名称空间。天哪,它工作了。事实上,我只是尝试了双引号和许多其他的东西,但是双引号和删除空格是有效的。我想这会很复杂。。。谢谢!