Эхо без перевода строки
-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/Archive
Dir.2012.04
April"
Я хочу, чтобы они были в одной строке, так как они изначально хранятся в файле. Это вина эха?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