#!/bin/bash
declare -A keyPair
while IFS=, read key value; do
keyPair[$key]=$value
done <$2
while read line; do
for char in $line; do
decoded=${keyPair[$char]}
echo -n "$decoded"
done
done <$1
这是我上面的代码。我正在尝试输出从文件中读取的文本并替换文件中与关联数组中的文字相对应的文字。(例如AA:{waste:run},程序将用'run'替换所有'waste'实例) 。我想在没有换行的情况下回应输出。我假设这适用于echo -n,但是我的控制台没有输出任何内容。但是,如果我只使用没有-n的echo运行相同的脚本,我的程序将输出以下内容:
zoo
garage
water
mountain
run
father
zoo
underwater
fast
run
walk
foo
fast
father
我想让它看起来像这样
zoo garage water mountain
run father zoo underwater fast
run walk
foo fast father
任何帮助将不胜感激。非常感谢你。
答案 0 :(得分:1)
问题源于我的输入txt文件中有DOS行结尾。修复DOS行结尾似乎修复了我的所有问题。
了解更多:stackoverflow.com/tags/bash/info