用不同的映射字符串集替换多个字符串

用不同的映射字符串集替换多个字符串

我想用一组不同的预定义字符串替换多个字符串模式。

例如:

输入:

This sentence will be converted to something different. This sentence can contain same words.

输出:

These words need to be replaced with something different. These words can contain same alphabets. 

所以在这里我想转换成下面的模式。

  • 这个=>这些
  • 句子 => 单词
  • 将 => 需要
  • 转换=>替换
  • 到 => 与
  • 单词=>字母表

让我知道是否可以做到。

答案1

如果您的数据位于文件中data.txt(例如),那么您可以sed在 for 循环内使用。也许是这样的:

replacements=(
    This:These
    sentence:word
    will:need to
    converted:repalced
    to:with
    words:alphabets
)

for row in "${replacements[@]}"; do
    original="$(echo $row | cut -d: -f1)";
    new="$(echo $row | cut -d: -f2)";
    sed -i -e "s/${original}/${new}/g" data.txt;
done

相关内容