Używając sed
do modyfikacji pliku w miejscu:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
To instruuje, sed
aby usunąć wszystkie linie nie pasujące do wzorca. Wzór jest sama ^
(start linii), a następnie przez jedną report
lub -t
następnie albo h
czy o
.
Należy pamiętać, że nie jest to faktyczna modyfikacja na miejscu: sed
tworzy tymczasową kopię zapasową i zastępuje ją oryginalnym plikiem.
Jeśli chcesz sed
zachować kopię zapasową oryginalnego pliku (co może być dobrym pomysłem, jeśli plik zawiera krytyczne dane), podaj -i
przełącznikowi rozszerzenie, aby utworzyć plik kopii zapasowej:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
zmodyfikuje your_file
i utworzy kopię zapasową oryginału o nazwie your_file.bak
.
Notatka dodatkowa
Proszę, nie mylcie moich intencji ani nie obrażajcie się na to, ale zauważyłem, że macie wiele podobnych pytań związanych z wyrażeniami regularnymi / przetwarzaniem tekstu. Radzę, aby rozpocząć naukę sed
, awk
i grep
na własną rękę do prędkości dopomóc swojej wydajności. Ponownie, nie zrozumcie mnie źle, jestem bardzo szczęśliwy, mogąc pomóc (podobnie jak większość ludzi tutaj); po prostu myślę, że możesz czerpać ogromne korzyści z podnoszenia tych narzędzi do codziennego użytku.
Aby udowodnić, jak pomocni są tutaj ludzie, zastanów się nad sugestią @ slm w komentarzach poniżej i zapraszam do tego czatu w dowolnym momencie na pytania.