我试图用一个读取.csv文件的while循环中的find和sed替换HTML文件列表中的一些文本。
我的.sh脚本看起来像这样。
#!/bin/sh
INPUT=myfile.csv
OLDIFS=$IFS
IFS='|'
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
replace_word(){
find . -type f -readable -writable -name '*.html' -exec sed -i "s/>[ ]*$1[ ]*</>{% trans '$1' %}</g" {} \;
echo "parsed $1"
}
while read text;
do
{
arg="$text"
replace_word $arg
}
done < $INPUT
IFS=$OLDIFS
即使调用了replace_word(),HTML文件也没有被修改,虽然我想替换的文本就在那里。
PS:当我在while循环外调用我想要替换的一些文本的函数时,它工作正常但很明显,只有一次。
修改 myfile.csv看起来像这样
"Abajo"
"Abortos"
"Abril"
"Acceder"
运行脚本后,我想从
中替换一些HTML标记<span id="btn-down" class="btn btn-xs set_function_btn">Abajo</span>
要
<span id="btn-down" class="btn btn-xs set_function_btn">{% trans 'Abajo' %}</span>
myfile.csv上的每个单词都是如此