Эхо без перевода строки
-bash-4.1# cat output"/root/mail/domain.com/root/Archive Dir.2012.04 April"
for i in `cat output`; do echo "$i"; done"/root/mail/domain.com/root/ArchiveDir.2012.04April"
Я хочу, чтобы они были в одной строке, так как они изначально хранятся в файле. Это вина эха?echo -n сломать все, так что не будет.
2 ответа
Вы можете использовать цикл while
while read i
do
echo $i
done < output
Причина, по которой ваша команда не работает так, как вы ожидаете, заключается в том, что for действует на слова. Значение переменной $IFS определяет, какие символы используются для разделения слов, по умолчанию space, tab а также newline, Поскольку ваш входной файл содержит строки с пробелами, они разбиваются на слова. Если вам нужно использовать цикл for, вы можете обойти это, заключив строки в "
for i in "`cat output`"
do
echo "$i"
done