Mam długi dokument poleceń. Używając Notepad ++ lub regex, chcę usunąć wszystkie wiersze zawierające „pomoc”, w tym keyboard_help itp.
Jak można to zrobić?
Jest to również możliwe w Notepad ++:
Sprawdź wiersz Zakładki (jeśli nie ma aktualizacji zakładki Oznacz do bieżącej wersji).
Wpisz wyszukiwane hasło i kliknij Oznacz wszystko
Teraz przejdź do menu Szukaj → Zakładka → Usuń zaznaczone linie
Gotowy.
cd
na ścieżkę i wpisać złożone polecenie (martwiąc się o składnię i trwałe zepsucie, a następnie uświadomienie sobie nie ma kopii zapasowej). [ Nie zrozum mnie źle, cały czas używam poleceń konsoli do innych rzeczy, ale dla czegoś takiego to tylko przesada.]BOOKMARK LINE
jest tutaj ważne, inaczej nie zadziała!Innym sposobem na zrobienie tego w Notepad ++ jest skorzystanie z okna dialogowego Znajdź / Zamień oraz z regex:
Ctrl+, haby wyświetlić okno dialogowe Znajdź zamień.
W polu
Find what:
tekstowym umieść wyrażenie regularne:.*help.*\r?\n
(gdzie\r
jest opcjonalne, jeśli plik nie ma zakończeń linii Windows).Pozostaw
Replace with:
pole tekstowe puste.Upewnij się, że przycisk opcji Wyrażenie regularne w obszarze Tryb wyszukiwania jest zaznaczony. Następnie kliknij
Replace All
i voila! Wszystkie wiersze zawierające wyszukiwane hasłohelp
zostały usunięte.źródło
Proste zadanie dzięki
grep
:Dołącz,
> newFileName
aby przekierować dane wyjściowe do nowego pliku.Aktualizacja
Aby to wyjaśnić, normalnym zachowaniem będzie drukowanie linii na ekranie. Aby użyć potoku do pliku,
>
można go użyć. Zatem w tym poleceniu:grep
grep
oczywiście wywołuje program-v
to flaga odwracająca dane wyjściowe. Defaulfgrep
drukuje linie pasujące do podanego wzoru. Za pomocą tej flagi wydrukuje linie, które nie pasują do wzoru.help
to wzór do dopasowaniafilename
to nazwa pliku wejściowego>
przekierowuje dane wyjściowe do następującego elementunewFileName
nowy plik, w którym dane wyjściowe zostaną zapisane.Jak zauważyłeś, nie będziesz usuwać rzeczy z pliku.
grep
przeczyta go, a inny plik zostanie zapisany, odpowiednio zmodyfikowany.źródło
grep
zainstalowanego. W każdym razie polecam instalację GNU grep, z pewnością będzie działał w systemie Windows i jest to naprawdę przydatne narzędzie.>
w tym przypadku), podając ostateczne poleceniegrep -v help filename > outputFileName
Możesz to zrobić za pomocą sed:
sed '/help/ d' < inputFile > outputFile
źródło
sed '/^help/ d'
powinien działać.^
Stanowi początek linii.sed
igrep
Wyszukaj za pomocą wyrażenia regularnego:
źródło
\n\n
, zamień na `` (nic)Jeśli korzystasz z systemu Windows , spróbuj
findstr
. Narzędzia innych firm nie są potrzebne:Obsługuje także wyrażenia regularne! Po prostu przeczytaj pomoc narzędzia
findstr /?
.PS Jeśli chcesz pracować z dużymi, dużymi plikami (np. 400 MB plików dziennika), edytor tekstu nie jest bardzo wydajny pod względem pamięci, więc, jak już ktoś zauważył, narzędzia wiersza poleceń są najlepszym rozwiązaniem. Ale w systemie Windows nie ma grep, więc ...
Właśnie uruchomiłem to na pliku dziennika 1 GB i zajęło mi to dosłownie 3 sekundy.
źródło