[英]results of ls in one line when the output goes to a file
ls 在連接到標准輸出時在一行中返回文件。
$ ls
a b c
當它重定向到一個文件時
$ ls > foo.txt
$ cat foo.txt
a
b
c
我意識到選項-C
$ ls -C > hoge.txt
$ cat hoge.txt
a b c
但是,當文件列表有很多時, ls
將回車放在列表中。 喜歡
a b c d e f g h
i j k l ....
我怎么會有
a b c d e f g h i j k l.....(without \n)
我不知道ls
是否為此提供了一個選項,我還沒有查過。 由於這個問題並沒有特別要求一個非常快速或計算效率高的解決方案,我建議使用ls
和sed
合成一個命令:
ls "$dir" | sed -z 's/\n/ /g'
它接受ls
輸出並用空格替換所有換行符\\n
。 -z
開關是必需的,因為否則sed
將面向行工作,並且sed
的模式匹配器永遠不會看到\\n
。 如果$dir
中的文件名之一包含空格,則會出現問題。
如果計算效率是一個問題,我建議搜索這樣的選項 ( man ls
) 或編寫一個程序來做到這一點(例如,使用C
語言)。
這將解決問題:
ls | xargs > foo.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.