Bash 如何将文件内容发送到函数?
我想将从文件中获取的XML(HTML)内容发送到替换函数,以便修复错误的HTML实体(并覆盖文件)。但是我做不到 这是基于函数的Bash 如何将文件内容发送到函数?,bash,Bash,我想将从文件中获取的XML(HTML)内容发送到替换函数,以便修复错误的HTML实体(并覆盖文件)。但是我做不到 这是基于函数的 函数htmlEscape(){ 本地s=$1 s=${1/&/&;} s=${s//} s=${s/'''/''} echo$s } 我试过了 cat $TEMPFILEPATH | htmlEscape > $TEMPFILEPATH tee $TEMPFILEPATH <<< htmlEscape "$(cat $TEM
函数htmlEscape(){
本地s=$1
s=${1/&/&;}
s=${s//}
s=${s/'''/''}
echo$s
}
我试过了
cat $TEMPFILEPATH | htmlEscape > $TEMPFILEPATH
tee $TEMPFILEPATH <<< htmlEscape "$(cat $TEMPFILEPATH)"
cat$TEMPFILEPATH | htmlEscape>$TEMPFILEPATH
tee$TEMPFILEPATH您编写函数是为了接受参数:
htmlEscape "$(cat $TEMPFILEPATH)"
您可以在函数内移动cat
命令,不过:
htmlEscape () {
local s=$(cat "$1")
s=${1//&/&}
s=${s//</<}
s=${s//>/>}
s=${s//'"'/"}
echo "$s"
}
htmlEscape "$TEMPFILEPATH"
htmlEscape(){
本地s=$(类别“$1”)
s=${1/&/&;}
s=${s//}
s=${s/'''/''}
回显“$s”
}
htmlEscape“$TEMPFILEPATH”
编写函数是为了接受参数:
htmlEscape "$(cat $TEMPFILEPATH)"
您可以在函数内移动cat
命令,不过:
htmlEscape () {
local s=$(cat "$1")
s=${1//&/&}
s=${s//</<}
s=${s//>/>}
s=${s//'"'/"}
echo "$s"
}
htmlEscape "$TEMPFILEPATH"
htmlEscape(){
本地s=$(类别“$1”)
s=${1/&/&;}
s=${s//}
s=${s/'''/''}
回显“$s”
}
htmlEscape“$TEMPFILEPATH”
我将创建一个sed
脚本“htmlEscape.sed”
s/&/&/g
s/</</g
s/>/>/g
s/"/"/g
或使用适当的sed
sed -i -f htmlEscape.sed $TEMPFILEPATH
我将创建一个sed
脚本“htmlEscape.sed”
s/&/&/g
s/</</g
s/>/>/g
s/"/"/g
或使用适当的sed
sed -i -f htmlEscape.sed $TEMPFILEPATH
您是否测试过Xhtml2text
?您在第一行中正确地“发送”了文件内容。但是你没有阅读它。带有tee
的第二行没有任何意义。请注意,>$TEMPFILEPATH
可能会在cat
有机会读取全部内容之前截断文件。您可能应该将函数创建为一组sed命令,并通过管道将其传递到那里。您是否测试过xhtml2text
?您正在“发送”文件内容正确地显示在第一行中。但是你没有阅读它。带有tee
的第二行没有任何意义。请注意,>$TEMPFILEPATH
可能会在cat
有机会读取全部内容之前截断文件。您可能应该将函数创建为一组sed命令并通过管道传递。@WalterA我想您的意思是htmlEscape“$TEMPFILEPATH”>“$TEMPFILEPATH.out”@WalterA我想你的意思是htmlEscape“$TEMPFILEPATH”>“$TEMPFILEPATH.out”