[bash] kazda linijka jako parametr :)

0

np dajmy sobie takie polecenie
$ polecenie | grep wzorzecz
jakis wzorzec
inny wzorzec

a teraz zeby do programu X kazda linijke przekac jako parametr. znaczy program X bedzie uruchamiany tyle razy ile jest tych linijek, a jako jego parametr bedzie podawana nastepna linijka. czy jest jakis lekki sposob na to?

0
plik="/twoj/plik"
program="echo"

l=`wc -l < "${plik}"`
i=1;
while [ ${i} -le ${l} ] ; do
  s=`head -n "${i}" "${plik}" | tail -n 1`
  "${program}" "${s}"
  i=$[i+1]
done

jesli "${s}" / "$s" bedzie bez cudzyslowow to kazde slowo bedize traktowane jako osobny parametr programu, jesli zostawisz jak jest to cala linijka bedzie przekazywana jako jeden parametr

inaczej:

program="echo" ; plik="/jakis/plik" ; cat "${plik}" | while read linia ; do "${program}" "${linia}" ; done

tu problem jest taki, ze obcinane sa spacje z poczatku ( i konca ?? ) linii

poza tym mozna uzyc np sed

1 użytkowników online, w tym zalogowanych: 0, gości: 1