Dzienniki poczty są niezwykle trudne do odczytania. Jak mogę wypisać pustą linię między każdą linią wydrukowaną w linii poleceń? Powiedzmy na przykład, że przeglądam dziennik. W ten sposób wiele owiniętych linii nie jest mylonych.
Dzienniki poczty są niezwykle trudne do odczytania. Jak mogę wypisać pustą linię między każdą linią wydrukowaną w linii poleceń? Powiedzmy na przykład, że przeglądam dziennik. W ten sposób wiele owiniętych linii nie jest mylonych.
Odpowiedzi:
sed G
# option: g G Copy/append hold space to pattern space.
Gnie jest często używany, ale jest dobry do tego celu. sed utrzymuje dwie przestrzenie buforowe: „przestrzeń wzoru” i „przestrzeń wstrzymania”. Linie przetwarzane przez sed zazwyczaj przepływa przez przestrzeń wzór jak różne polecenia działają na jego zawartość ( s///, pitp); pole wstrzymania zaczyna się puste i jest używane tylko przez niektóre polecenia.
GPolecenie dołącza do nowej linii i zawartość miejsca przechowywania do przestrzeni wzorca. Powyższy program sed nigdy nie umieszcza niczego w przestrzeni wstrzymania, więc Gskutecznie dodaje tylko nową linię do każdej przetwarzanej linii.
-eponieważ potrzebujemy tylko jednego argumentu polecenia.
Czy o to ci chodzi?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
read -raby uniknąć traktowania znaków odwrotnego ukośnika jako specjalnych.
Jeśli chodzi o coś więcej niż tylko wygląd, wolę wysłać je do pliku tekstowego i otworzyć za pomocą edytora tekstu, abyś mógł ustawić linie do zawijania lub nie i łatwo wyszukiwać ... oraz usuwać niechciane linie i tak dalej bez wpisując wiele poleceń.
cat file.log > log.txt
i gedit log.txtlub edytor terminali, taki jak nano
Edycja: lub cp file.log log.txtco jest oczywiście łatwiejsze i szybsze ... dzięki komentarzowi KeithB
catnie cp?
cpbyłoby łatwiej i szybciej ... lol - Czytałem inne odpowiedzi do czynienia ze grepi awktak napisałem mu catdrogę, ale ja sprostowanie, że dzięki
whatever | sed Gpowinny załatwić sprawę.