使用变量写入文件而不重复

时间:2015-01-18 17:55:04

标签: linux bash shell scripting

尝试在shell中编写一个函数,它接受三个参数a_text_to_be_matchednew_textfile_name。如果找到text_to_be_matched,那么整行将被new_text替换,否则它只是回显文件中的new_text。 以下是我尝试过的代码,但是当$ to_write中间有空格时会中断。

function write_once(){
to_grep="$1";
to_write="$2";
file="$3";
grep $to_grep $file;
if [ $? -eq 0 ]; then 
    sed -i '/'"$to_grep"'/c\'$"to_write" $file;
else
    echo "$to_write" >> "$file";
fi
}

1 个答案:

答案 0 :(得分:0)

尝试类似:

sed -i "s/(.*)?(${text_to_be_matched})?(.*)?/${new_text}" $file