-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
все сломает, так что не пойдет.
Вы можете использовать цикл while
while read i
do
echo $i
done < output
Причина, по которой ваша команда не работает так, как вы ожидаете, заключается в том, что for
действует на слова. Значение переменной $ IFS определяет, какие символы используются для разделения слов, по умолчанию space
, tab
и newline
. Поскольку ваш входной файл содержит строки с пробелами, они превращаются в слова. Если вам нужно использовать цикл for, вы можете обойти это, обернув свои строки в "
for i in "`cat output`"
do
echo "$i"
done
while read line; do echo $line; done < output