Jak usunąć komentarze i puste linie z pliku w systemach Linux/Unix?
Zapewne nie jeden z Was zastanawia się jak można usunąć puste linie, bądź komentarze w dowolnych plikach tekstowych. Z pomocą przychodzi nam między innymi program grep
dostępny we wszystkich systemach Linux i Unix.
Spójrzmy zatem na przykładowy plik: licznik.sql
z którego będziemy wpierw usuwać puste linie, a później komentarze:
-- plik: licznik.sql -- utwórz sekwencje licznik CREATE SEQUENCE licznik minvalue 1 maxvalue 9999 -- wartość od której zaczynamy start with 1 increment by 1
Zacznijmy zatem od usunięcia pustych linii. Składnia naszego polecenia wygląda jak poniżej:
grep -v ^$ licznik.sql
zaś jego wynik prezentuje się następująco:
-- plik: licznik.sql -- utwórz sekwencje licznik CREATE SEQUENCE licznik minvalue 1 maxvalue 9999 -- wartość od której zaczynamy start with 1 increment by 1
Wróćmy do naszego wzorcowego pliku: licznik.sql
i usuńmy z niego teraz komentarze. W naszym przykładzie komentarze poprzedzone są znakami: --
.
grep -v ^-- licznik.sql
Wynik powyższego polecenia:
CREATE SEQUENCE licznik minvalue 1 maxvalue 9999 start with 1 increment by 1
W Twoich plikach komentarz może być poprzedzony innym znakiem, np: #
. Nie zapomnij tego zmienić w Twoim poleceniu.
Wiemy już jak usunąć komentarze i puste linie z pliku tekstowego. Połączmy zatem oba te polecenia w jedno i przekierujemy ich wynik do pliku:
grep -v ^$ licznik.sql | grep -v ^-- licznik.sql > nowy-licznik.sql
W wyniku powyższego zapytania powstał nowy plik: nowy-licznik.sql
, który zawiera kod z pliku: licznik.sql
, ale już bez komentarzy i pustych linii. Jego zawartość wygląda następująco:
CREATE SEQUENCE licznik minvalue 1 maxvalue 9999 start with 1 increment by 1