Chcę znaleźć wszystkie wiersze w kilku plikach, które pasują do jednego z dwóch wzorów. Próbowałem znaleźć wzorce, których szukam, pisząc grep (foo|bar) *.txt ale powłoka interpretuje |potok i narzeka, gdy barnie jest plikiem wykonywalnym. Jak mogę grep dla wielu wzorców w tym samym zestawie plików?
Powiedz, że mam plik: # file: 'test.txt' foobar bash 1 bash foobar happy foobar Chcę tylko wiedzieć, jakie słowa pojawiają się po „foobar”, więc mogę użyć tego wyrażenia regularnego: "foobar \(\w\+\)" Nawiasy wskazują, że szczególnie interesuję się tym słowem zaraz po foobar. Ale kiedy robię a grep "foobar \(\w\+\)" test.txt, …
Czy ktoś może mi powiedzieć różnic technicznych między grep, egreporaz fgrepi dostarczają odpowiednich przykładów? Kiedy muszę używać grepna egrepodwrót?
Zauważyłem, że jeśli dodam \ndo wzorca w celu podstawienia za pomocą sed, to nie pasuje. Przykład: $ cat > alpha.txt This is a test Please do not be alarmed $ sed -i'.original' 's/a test\nPlease do not/not a test\nBe/' alpha.txt $ diff alpha.txt{,.original} $ # No differences printed out Jak mogę …
Chciałbym uzyskać dopasowanie wielu wzorców z niejawnym AND między wzorami, tj. Równoważne z uruchomieniem kilku greps w sekwencji: grep pattern1 | grep pattern2 | ... Jak więc przekonwertować to na coś takiego? grep pattern1 & pattern2 & pattern3 Chciałbym użyć pojedynczego grepa, ponieważ dynamicznie buduję argumenty, więc wszystko musi mieścić …
Mam plik o następującej treści: <username><![CDATA[name]]></username> <password><![CDATA[password]]></password> <dbname><![CDATA[name]]></dbname> i muszę stworzyć skrypt, który zmieni „imię” w pierwszym wierszu na „coś”, „hasło” w drugim wierszu na „coś”, a „imię” w trzecim wierszu na „coś innego”. Nie mogę polegać na kolejności występowania w pliku, więc nie mogę po prostu zastąpić pierwszego wystąpienia …
Napisałem wyrażenie regularne, które działa dobrze w pewnym programie (grep, sed, awk, perl, python, ruby, ksh, bash, zsh, find, emacs, vi, vim, gedit,…). Ale kiedy używam go w innym programie (lub w innym wariancie unixowym), przestaje on pasować. Dlaczego?
Próbuję użyć grep z wyrażeniem regularnym, aby znaleźć wiersze w pliku, które pasują do 1 z 2 możliwych ciągów. Oto mój grep: $ grep "^ID.*(ETS|FBS)" my_file.txt Powyższy grep nie zwraca żadnych wyników. Jeśli jednak wykonam: $ grep "^ID.*ETS" my_file.txt lub $ grep "^ID.*FBS" my_file.txt Dopasowuję określone linie. Dlaczego moje wyrażenie …
Mam dwa pliki konfiguracyjne, oryginalny od menedżera pakietów i dostosowany przeze mnie. Dodałem kilka komentarzy opisujących zachowanie. Jak mogę uruchomić diffpliki konfiguracyjne, pomijając komentarze? Skomentowany wiersz jest definiowany przez: opcjonalne wiodące białe znaki (tabulatory i spacje) znak skrótu ( #) cokolwiek innego Najprostszym wyrażeniem regularnym byłoby pominięcie pierwszego wymagania #.*. …
Staram się lista wszystkich plików z dir1, dir2, dir3i dir4które mogą być w dowolnym miejscu w podkatalogu mojego cwdpomocą findpolecenia. Próbowałem następujących bezskutecznie: find . -type f -regextype posix-egrep -regex 'dir1/.+|dir2/.+|dir3/.+|dir4/.+' Próbowałem posix-extendedteż. Jak mogę wyświetlić te pliki?
To powinno być naprawdę proste, ale z jakiegoś powodu nie działa: sed -i.bak -E 's/\t/ /' file.txt Zamiast zastępować znaki tabulacji, zastępuje tznaki. Wypróbowałem każdą odmianę, o której mogłem pomyśleć, bawiąc się cytowaniem itp. Poszukałem google i znalazłem, że wszyscy używają podobnych wyrażeń i wydaje się, że działają dla nich. …
Pytanie mniej więcej mówi wszystko. Wiem, że /^$/dusunie wszystkie puste linie, ale nie widzę, jak powiedzieć „zamień dwie lub więcej pustych linii na jedną pustą linię” Jakieś pomysły?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.