Wpis z mikrobloga

#bash #linux
Jak w bashu/sh odczytać i "przerobić" dany plik tekstowy linijka po linijce?

Dajmy na to chcę otworzyć skrypt ./skrypt input output, gdzie input to 10 liniowy plik tekstowy i każdą linię chce sprawdzić ifem czy coś zawiera a następnie jeżeli zawiera coś to ją wypisać do outputu, a jeżeli nie zawiera to ją olać i przejść dalej.

Głownie chodzi mi o to jak ten plik otwierać linijka po linijce a nie w całości.
for line in $1; do; if[...] niestety otwiera w całości
tak samo for line in cat $1;do;if[...]
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bpnn: grep raczej mnie nie urządzi - bo muszę wziąć cały plik i każdą linie "sprawdzić" w takiej samej kolejności jak jest w inpucie

Czyli dajmy na to w inpucie(przecinek = nowa linia) mamy "echo "test", ls, pwd, whoami" a w outpucie(przecinek = nowa linia) ma być "printf, list(), workingdir, userlogin".

No i chcę zrobić to tak że w forze otworzę sobie inputa i będę mógł linia po
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@PrawieJakBordo:
Ten przykład może jest bardziej skomplikowany niż powyżej, ale też można tak że sprawdzić wc -l ile ma plik linijek ustawić licznik i później w pętli odczytywać po jednej linijce head -n $licznik | tail -n 1. Przydaje się to gdy potrzebujesz wiedzieć w której linijce coś wystąpiło, ile linijek zostało zmienionych, chcesz wiedzieć jaki jest postęp operacji.
  • Odpowiedz