如何列出文件名中有空格的文件,并将它们全部放入一个文本文件中。不幸的是,下面的命令会把所有的空格变成新的行,例如filename aba.txt
会变成:
filename
aba.txt
我想输出:
filename aba.txt
我使用的命令是:
$ for f in `ls -v *.txt`; do echo "$f"; done >> Output.txt
我认为通过用引号包围$f
,每次文件名中有空格时都不会创建新行。显然不是。
您可以使用显式分隔符(到'n')管道到xargs
:
ls -1 *.txt | xargs -n 1 --delimiter 'n' echo > output.txt
注意#1:ls -1
将每行列出一个条目
xargs
阶段(它允许你通过-I{}
做基本的字符串操作),直接发送到输出文件:
ls -1 *.txt > output.txt
man echo
...
-n do not output the trailing newline
谢谢卡雷尔,我一直在努力。
tr 'n' ' ' list.txt
将把列表中的单词和空格放在一起