Portál AbcLinuxu, 9. května 2025 19:19
Tak je to správně, tak to má fungovat. Pokud chcete zpracovávat text po řádcích, použijte cyklus while
s příkazem read
, např:
i=0 while read; do printf "%6d: %s\n" $[++i] "$REPLY" done <file
Ten cyklus se chová jako složený příkaz, který se dá použít i s rourou:
who | while read; do .... done
Jen v případě, že potřebujete, aby tělo cyklu mohlo měnit proměnné tak, aby se to projevilo i mimo cyklus, je potřeba použít trik popsaný tady.
pro konkrétní řetězec lze použít konstrukci
... <<<"string"nebo tradiční
echo "string" | ...
ale spolu se zpracováním po řádcích to moc smysl nedává.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.