-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 的错误吗?
echo -n
会破坏一切,所以不行。
答案1
您可以使用 while 循环
while read i
do
echo $i
done < output
您的命令无法按预期工作的原因在于for
对单词进行操作。 $IFS 变量的值决定使用哪些字符来分隔单词,默认值为space
、tab
和newline
。由于您的输入文件包含带空格的行,因此它们会被拆分成单词。如果您需要使用 for 循环,您可以通过将行换行来解决此问题"
for i in "`cat output`"
do
echo "$i"
done
答案2
while read line; do echo $line; done < output