( egmont | 2008. 12. 07., v – 12:31 )

Szerintem a legtisztább megoldás, ha vannak ilyesmi speciális karakterek (aposztróf, szóköz stb.) a fájlnevekben, hogy csupa olyan progit használsz, ami nullás byte-tal választja el az input mezőket, nem újsorral.

find ... -print0 | grep -z ... | xargs -0 ...

sed elfelejtve. Ha egyszintű (nem rekurzív) listázást akarsz, akkor a find-nak -maxdepth 1 vagy valami hasonló opciója segít, vagy kézzel kábé így: for i in *; do printf '%s\000' "$i"; done. Esetleg, ha tudod hogy egyik fájlnév sem tartalmaz newline-t :), akkor a grep-ig maradhat a te megoldásod, onnan pedig tr '\n' '\0' | xargs -0 ...