サブシェルを実行してコマンドの出力を取得すると、改行が失われます。
例えば:
filenames=$(grep 'foobar' /some/dir)
echo $filenames
/some/dir
文字列「foobar」を含むファイルが複数あると仮定すると、これらのファイル名は、1 行に 1 つのファイル名ではなく、スペースで区切られた 1 つの長い行に出力されます。
tr
とにかくファイル名にスペースが含まれている可能性があるため、スペースを改行に戻すために使用することはできません。
改行を維持する方法はありますか?