Mam kilka plików tekstowych, których używam do robienia notatek - po prostu zwykły tekst, zwykle tylko za pomocą cat >> file
. Czasami używam pustej linii lub dwóch (po prostu return - znak nowej linii), aby określić nowy temat / linię myśli. Na koniec każdej sesji, przed zamknięciem pliku za pomocą Ctrl+ D, zwykle dodam wiele (5-10) pustych wierszy (klawisz powrotu), aby oddzielić sesje.
Nie jest to oczywiście zbyt sprytne, ale do tego celu działa. I mają jednak kończą się z dużą i mnóstwo niepotrzebnych pustych wierszy, więc szukam sposobu, aby usunąć (większość) dodatkowe linie. Czy istnieje polecenie dla systemu Linux (wytnij, wklej, grep, ...?), Którego można użyć bezpośrednio z kilkoma opcjami? Alternatywnie, czy ktoś ma pomysł na sed, awk lub perl (dobrze w jakimkolwiek języku skryptowym, choć wolałbym sed lub awk) skrypt, który zrobiłby to, czego chcę? Pisanie czegoś w C ++ (co właściwie mógłbym zrobić sam), wydaje się po prostu przesadą.
Przypadek 1: Potrzebuję skryptu / polecenia, które usunie więcej niż dwie (3 lub więcej) kolejnych pustych linii i zastąpi je tylko dwiema pustymi liniami. Chociaż byłoby dobrze, gdyby można go również dostosować, aby usunąć więcej niż jedną linię (2 lub więcej) i / lub zastąpić wiele pustych linii tylko jedną pustą linią.
Przypadek nr 2: Mógłbym również użyć skryptu / polecenia, które usuną pojedynczą pustą linię między dwoma liniami tekstu, ale pozostawią wiele pustych linii bez zmian (chociaż usunięcie jednej z pustych linii byłoby również dopuszczalne).
vim
jednym i miało zastąpić puste linie jednym pustym wierszem).