FILE
:
hello
world
foo
bar
Jak mogę usunąć wszystkie puste nowe wiersze z tego FILE
?
Wyjście polecenia:
FILE
:
hello
world
foo
bar
linux
grep
text-processing
user191960
źródło
źródło
Odpowiedzi:
grep . FILE
(A jeśli naprawdę chcesz to zrobić w sed, a następnie:
sed -e /^$/d FILE
)(A jeśli naprawdę chcesz to zrobić w awk, a następnie:
awk /./ FILE
)źródło
sed -ne/./p
działa również iawk /./
jest krótszy (akcja jest{print}
nieokreślona). @ ghostdog74:grep '[^[:space:]]'
wtedy..
jest to wyrażenie regularne, które pasuje do dowolnego znaku poza znakiem nowej linii.grep . FILE
działa z podanym przykładem, ale niekoniecznie, gdy plik może mieć bajty, które nie są częścią zestawu znaków. Na przykład w przypadku GNU grep 2.20printf "\x80\n" | grep .
nic nie wyświetla.Spróbuj wykonać następujące czynności:
źródło
grep -v -e '^$'
zawsze działa, co nie ma miejscagrep .
. Na przykład w przypadku GNU grep 2.20printf "\x80\n" | grep .
nic nie wyświetla, natomiastprintf "\x80\n" | grep -v '^$'
wyświetla niepustą linię.źródło
awk1line.txt
- z drugiej strony, podobnie jak większość sztuczek awk :)Oto rozwiązanie, które usuwa wszystkie linie, które są puste lub zawierają tylko znaki spacji:
źródło
Spróbuj tego:
sed -i '/^[ \t]*$/d' file-name
Spowoduje to usunięcie wszystkich pustych linii, które mają nie. odstępów (spacji lub tabulatorów), tj. (0 lub więcej) w pliku.
Uwaga: w nawiasie kwadratowym znajduje się „spacja”, po której następuje „\ t”.
Modyfikator
-i
wymusi zapisanie zaktualizowanej zawartości z powrotem w pliku. Bez tej flagi możesz zobaczyć, że puste linie zostały usunięte na ekranie, ale nie będzie to miało wpływu na rzeczywisty plik.źródło
grep '^..' my_file
przykład
jako wyjście podaje tylko wiersze z przynajmniej 2 znakami.
Zobacz także wyniki z
grep '^' my_file
produktamia także z
grep '^.' my_file
wyjściamiźródło
Jeśli usunięcie pustych linii oznacza linie zawierające spacje, użyj:
Na przykład:
Zobacz też:
sed
: Usuń puste linie za pomocą sedaawk
: Usuń puste linie za pomocą awkźródło
Wypróbuj ex -way:
W przypadku wielu plików (edycja lokalna):
Bez modyfikowania pliku (po prostu wydrukuj na standardowym wyjściu):
źródło
Perl może być przesadą, ale działa równie dobrze.
Usuwa wszystkie wiersze, które są całkowicie puste:
Usuwa wszystkie linie, które są całkowicie puste lub zawierają tylko spacje:
Odmiana, która edytuje oryginał i tworzy plik .bak:
źródło
Jeśli chcesz wiedzieć, jaka jest całkowita liczba wierszy kodu w twoim projekcie Xcode i nie jesteś zainteresowany wyświetlaniem liczby dla każdego pliku Swift, to da ci odpowiedź. Usuwa wiersze bez kodu i usuwa wiersze poprzedzone komentarzem
//
Uruchom go na poziomie głównym projektu Xcode.
Jeśli masz w kodzie bloki komentarzy zaczynające się
/*
i kończące*/
na:wtedy te zostaną uwzględnione w liczbie. (Zbyt trudne).
źródło
Najprostsza odpowiedź -----------------------------------------
źródło