Najó, de ezzel nem megyek semmire.
Először is az sh -c kiesik, mert akkor a végletes parancs sh -c "sh -c 'blabla'" lenne.
Másodszor ha while-read, akkor vagy grep soronként meghívva és utána cut (sokszoros erőforrás) vagy valami bash-dash-sh (only?) trükk, amivel a szövegfájl feldolgozható.
Esetleges megoldás lenne egy sh kompatibilis sor, ami külső parancsok nélkül végez mintaillesztést és stringvágást. A bash ugye tud olyat, hogy ${parameter/pattern/string}, ezzel esetleg lehetne operálni, de egyrészt semmi se garantálja hogy a /bin/sh az bash (és amúgy se az szerintem), illetve továbbra is adott a sorok olvasása a probléma, a read-while nálam riasztóan sok call-t dob.
Mókás, hogy a dash 1546 call-t hív, a bash 269-et, nálam:
strace -c /bin/bash -c 'while read i ; do echo $i ; done < /etc/passwd'
strace -c /bin/dash -c 'while read i ; do echo $i ; done < /etc/passwd'