命令find / sed在While循环中不起作用

时间:2018-01-09 17:29:13

标签: sed find sh

我试图用一个读取.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上的每个单词都是如此

0 个答案:

没有答案