web-dev-qa-db-ja.com

コンマで区切られたディレクトリー内のファイルのみをリストする方法

つまり、ディレクトリも隠しファイルもありません。ファイルだけ。ファイルのみを一覧表示するには、次の行を使用します。

ls -p | grep -v /

この行の結果をコンマで区切ってください。

5
user3467407

そのジョブにはtrを使用できます。

ls -p | grep -v / | tr '\n' ','
12
Thomas

GNU ls -mコマンド。すべてのファイルとディレクトリをカンマで区切って出力します。

4

Thomasによって提案された解決策は機能しますが、最後の項目にコンマを追加し(これは必要としない場合があります)、コンマの後のスペースを削除します。次の代替方法では、コンマの後にスペースを保持し、最後のアイテムの後にコンマを追加しません。

 ls -1p | grep -v / | xargs echo | sed 's/ /, /g'

もちろん、アイテム間のスペースを取り除きたい場合は、sed式を調整します。

 ls -1p | grep -v / | xargs echo | sed 's/ /,/g'

(小文字の「l」と数字の「1」(1つ)が同じに見えるフォントを使用する閲覧者への注意:lsに渡される最初のオプションは1、小文字ではなく、数値l。)

Jim Lがコメントで指摘したように、上記のコマンドはスペースを含まないファイル名に対してのみ機能します。以下のコマンドはそれを回避します:

 ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g' 

リストをechoに渡す前に、行末をカンマで置き換えます。最後の部分は、リストの最後にあるコマンドを削除します。

1
Tsundoku