康卡特的结果找到了

时间:2017-03-29 17:03:43

标签: linux bash find

我正在尝试在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

首先打印t / Pictures中的所有文件,然后打印字符串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 个答案:

答案 0 :(得分:2)

你可以这样做:

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%,}"