【发布时间】:2017-06-07 11:47:32
【问题描述】:
现在,我有脚本来搜索和替换单词。我怎样才能对句子或单词组合做同样的事情。 看我的剧本:
first_words="wwe wwf ziggler"
second_words="tna njpw okada"
mywords=( $first_words )
mywords2=( $second_words )
if [ ${#mywords[@]} != ${#mywords2[@]} ];then
echo "you should use the same count of words"
exit 1
else
echo "you are using the same count of words, continue ..."
fi
for ((i=0;i<"${#mywords[@]}";++i)); do
sed -i "s/${mywords[$i]}/${mywords2[$i]}/g" text.txt
done
它有效,但只能逐字替换。但是如果我想在几个单词组合上替换几个单词组合。 例如“dolph ziggler、john cena、randy orton”我想在“cm punk、hulk hogan、rey mysterio”上替换。在这种情况下我应该怎么做。也许我应该处理一些分隔符。在第一种情况下,空格是单词的分隔符,但在这种情况下,我不能使用空格。我可以做什么 ?请帮忙。
【问题讨论】:
-
为什么要赋值给变量,然后在数组中使用它们,而不是直接赋值给数组?
-
因为它不是所有的脚本。它是脚本的一部分。我应该在变量中使用输入参数。
-
你如何确定元素的开始和结束位置?
-
在所有文档中
-
与@123 的方向相同,如何将参数拆分为句子,在您的示例中,单词被空格(或制表符)分隔,因为这是默认设置
标签: bash shell for-loop if-statement delimiter