#!/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») , Я привязываюсь к эхо вывода без новой строки. Я предполагаю, что это работает с echo -n, однако моя консоль ничего не выводит. Однако, если я запустить тот же сценарий с только эхо без -n, моя программа выводит следующее:Bash Echo Not Printing
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
Любая помощь быть оцененным. Большое спасибо.
Проверьте свой сценарий для окончаний строк DOS. См. Http://stackoverflow.com/tags/bash/info. – chepner
Хм, я думаю, что сделал трюк. У меня закончились линии DOS. Спасибо. –