http://www001.upp.so-net.ne.jp/hata/sed_reference.html
sed ':loop; N; $!b loop; s/\n//g' input.txt
例えばCのプロジェクトで以下のソースだとする.
$ ls bridge.cpp inset.h polygonOptimizer.cpp sliceDataStorage.h bridge.h layerPart.cpp polygonOptimizer.h slicer.cpp comb.cpp layerPart.h raft.cpp slicer.h comb.h main.cpp raft.h support.cpp fffProcessor.h modelFile settings.cpp support.h gcodeExport.cpp multiVolumes.h settings.h timeEstimate.cpp gcodeExport.h optimizedModel.cpp skin.cpp timeEstimate.h infill.cpp optimizedModel.h skin.h utils infill.h pathOrderOptimizer.cpp skirt.cpp inset.cpp pathOrderOptimizer.h skirt.h
この中からフォルダ以外(ファイル)を抜き出して重複を削除した名前だけ並べたいときはこうする
$ ls -p |grep -Ev '/'| sed -e 's/\..*//g' | uniq | gsed -e ':loop; N; $!b loop; s/\n/,/g' bridge,comb,fffProcessor,gcodeExport,infill,inset,layerPart,main,multiVolumes,optimizedModel,pathOrderOptimizer,polygonOptimizer,raft,settings,skin,skirt,sliceDataStorage,slicer,support,timeEstimate