2017-03-29 28 views
2

私はBashでfindの結果を連結しようとしています。検索の結果を

c="sh -content_image in.jpg, style_image " 

find t/Pictures -name "*.jpg"| while read line; do 
    c=${c}",", 
    c=${c}"$line" 
    echo $line 

done 

echo $c 

この最初の印刷物のすべてのトン/写真の中のファイルや、文字列のsh -content_imageのin.jpg、style_image:だから私は、次のコードを得ました。

t/Pictures/nature/ActiOn_89.jpg 
t/Pictures/nature/ActiOn_27.jpg 
t/Pictures/nature/ActiOn_47.jpg 
t/Pictures/nature/ActiOn_54.jpg 
sh -content_image in.jpg, style_image 

が、私はそれがあまりにも

のようになりたい:何行うことになっていますが、最初の印刷すべてのファイルがあるとしながらだから、現在の出力は次のようになります

の全てが続くその文字列を印刷

t/Pictures/nature/ActiOn_89.jpg 
t/Pictures/nature/ActiOn_27.jpg 
t/Pictures/nature/ActiOn_47.jpg 
t/Pictures/nature/ActiOn_54.jpg 
sh -content_image in.jpg, style_image t/Pictures/nature/ActiOn_89.jpg,t/Pictures/nature/ActiOn_27.jpg,t/Pictures/nature/ActiOn_47.jpg,t/Pictures/nature/ActiOn_54.jpg 

私は間違っていると思いますか?

+1

おかげで私はあなたがこれはあなたがここにhttps://askubuntu.com/questions/704154詳細情報を見つけることができますが起こる理由として興味を持っている場合にも、それを考え出しました/シェル変数の変更中にパイプ中の読み取り中の組み合わせ – Thijser

答えて

2

あなたが行うことができます。@anubhavaへ

c="sh -content_image in.jpg, style_image " 

while IFS= read -rd '' line; do 
    echo "$line" 
    c+="$line," 
done < <(find t/Pictures -name "*.jpg" -print0) 

# strip trailing comma 
c="${c%,}"