echo 命令将空格变成新行
echo command turns whitespace into new line
如何列出文件——文件名中有白色space——并将它们全部放入一个文本文件中。不幸的是,下面的命令将所有白色spaces 变成新行,例如filename aba.txt
将变成:
filename
aba.txt
我要输出:
filename aba.txt
我使用的命令是:
$ for f in `ls -v *.txt`; do echo "$f"; done >> Output.txt
我认为通过用引号将 $f
括起来,每次文件名中出现 space 时都不会创建新行。显然不是。
man echo
...
-n do not output the trailing newline
谢谢卡雷尔,我很努力。
tr '\n' ' ' list.txt
将列表中的单词与空格放在一起
您可以使用显式分隔符(到“\n”)传送到 xargs
:
ls -1 *.txt | xargs -n 1 --delimiter '\n' echo > output.txt
注意 #1:ls -1
将每行列出一个条目
注#2:如果你不想转换文件名,你可以省略 xargs
阶段(它允许你通过 -I{}
进行基本的字符串操作),然后发送直接输出文件:
ls -1 *.txt > output.txt
如何列出文件——文件名中有白色space——并将它们全部放入一个文本文件中。不幸的是,下面的命令将所有白色spaces 变成新行,例如filename aba.txt
将变成:
filename
aba.txt
我要输出:
filename aba.txt
我使用的命令是:
$ for f in `ls -v *.txt`; do echo "$f"; done >> Output.txt
我认为通过用引号将 $f
括起来,每次文件名中出现 space 时都不会创建新行。显然不是。
man echo
...
-n do not output the trailing newline
谢谢卡雷尔,我很努力。
tr '\n' ' ' list.txt
将列表中的单词与空格放在一起
您可以使用显式分隔符(到“\n”)传送到 xargs
:
ls -1 *.txt | xargs -n 1 --delimiter '\n' echo > output.txt
注意 #1:ls -1
将每行列出一个条目
注#2:如果你不想转换文件名,你可以省略 xargs
阶段(它允许你通过 -I{}
进行基本的字符串操作),然后发送直接输出文件:
ls -1 *.txt > output.txt