[Linux] Jak usunąć puste wiersze z pliku txt ?

Systemy operacyjne
[Linux] Jak usunąć puste wiersze z pliku txt ?

Jeśli chcielibyście usunąć puste wiersze z pliku tekstowego np. txt / csv / html itd. możecie posłużyć się poleceniem sed. Poniżej przykład jak takie polecenie powinno wyglądać.

sed '/^$/d' nazwa_pliku.txt > plik_bez_pustych_linii.txt 

Powyższe polecenie poprzez zastosowane wyrażenie regularne pomija puste wiersze, a następnie wyjście (treść która powinna zostać wyświetlona na ekranie) przekierowuje do pliku. Możliwe jest nadpisanie oryginalnego pliku wykorzystując dodatkowe polecenie mv, docelowo wywołanie wyglądało by następująco:

sed '/^$/d' nazwa_pliku.txt > plik_bez_pustych_linii.txt
mv plik_bez_pustych_linii.txt nazwa_pliku.txt

Dla osób które chciały by daną operację przeprowadzić hurtowo, powinni zastosować pętlę foreach. Poniżej przykładowe zastosowanie pętli przy założeniu że pliki CSV są w jednym katalogu.

foreach file (*csv)
sed '/^$/d' $file > tmp_file
mv tmp_file $file
end