Jak mogę grepować dla wiersza zawierającego znak potoku |lub dla znaku >: files content: |this is test where is > this is none teraz potrzebuję polecenia grep grep -iE "<some expression>" file_name Wynik: |this is test where is >
Chcę wykonać niepochodny wzór (wyrażenie regularne) awk. Oto przykład: echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }' Czy można napisać wyrażenie regularne, które wybiera krótszy ciąg? @article{gjn, zamiast tego długiego łańcucha ?: @article{gjn, Author = {Grzegorz J. Nalepa}, Chcę uzyskać ten wynik: Author = …
Jak grep szukałby ciągów alfanumerycznych od 1 do 50 znaków (najlepiej by każda długość też działała) z dwukropkiem po każdej stronie - typowym wynikiem byłyby wszystkie linie zawierające ciąg :shopping:. Do tej pory mam poniższy kod (wypróbowałem kilka jego odmian), który nie działa: grep ':[[:alnum:]]{1,100}:' ~/x.txt
Lubię grep -v. Używam tego cały czas. Ale przetwarzam też tekst w Pythonie i brakuje mi jednej kluczowej rzeczy. Zazwyczaj używam grep -vdo usuwania obcych tekstów. Na przykład, $ grep -v '[a-z]' # (I manually review this output to confirm that I don't want those lines) $ grep '[a-z]' > …
Próbowałem utworzyć ciąg polecenia find, który znajdzie wszystkie pliki, które kończą się cyframi 1-99, ale wykluczają wszystkie inne. np. chcę znaleźć mój_plik1 mój_plik99, ale nie mój_plik456 i nie myfilebackup Wyrażenie, o którym myślę, jest takie, myfile[1-9]{1,2}ale nie mogę zmusić go do pracy z funkcją find. find . -regex '.*myfile[0-9]{1,2}' LUB …
Na moim komputerze działa system macOS 10.12.3 i korzystam z grepnarzędzia zainstalowanego w systemie w wersji 2.5.1-FreeBSD. Oto wyniki, które otrzymuję podczas testowania różnych wyrażeń regularnych: Ale jeśli uruchomię je za pomocą GNU grep (wersja 2.25), otrzymam: Grep GNU wydaje mi się poprawny, a BSD jest niepoprawny, nie? Dlaczego się …
Mam sporo wyników przechodzących przez sed i awk. Jak mogę poprzedzić wyjście słowem START, a sufiksu odpowiedź - END? Na przykład, jeśli mam All this code on all these lines and all these Jak mogę uzyskać: START All this code on all these lines and all these END ? Moja …
Mam 3 katalogi na bieżącej ścieżce. $ls a_0db_data a_clean_0db_data a_clean_data $ls a_*_data a_0db_data: a_clean_0db_data: a_clean_data: $ls a_[a-z]*_data a_clean_0db_data: a_clean_data: Spodziewałem się, że ostatnie polecenie ls będzie pasować tylko a_clean_data. Dlaczego pasuje również do tego, który zawiera 0? bash --version GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)
Wiem, że możemy uciec od znaku specjalnego, takiego jak *(){}$z \, aby zostać uznani za literały. Na przykład \*lub\$ Ale w przypadku, .gdy muszę to zrobić dwa razy, \\.inaczej jest to uważane za charakter specjalny. Przykład: man gcc | grep \\. Dlaczego tak jest
Dużo to badam, ale nadal nie jestem tego pewien. Co oznacza granica słów ? Co to robi? Czy na przykład ktoś mógłby mi wyjaśnić to polecenie? egrep '\b[A-Z]+\b' filename.sh
Zamknięte. To pytanie jest nie na temat . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat wymiany stosów Unix i Linux. Zamknięte 9 miesięcy temu . Czy są jakieś samouczki grep online, które zawierają narzędzie online do wykonywania ćwiczeń? Na przykład, mając wcześniej zdefiniowaną …
Niedawno przekonwertowałem wszystkie moje pliki FLAC na niższą częstotliwość próbkowania 44,1 kHz i głębię bitową 24 bity (ponieważ iPhone / iPod nie obsługują niczego powyżej) za pomocą XLD na moim Mac OS 10.7 (Lion). Chociaż powiedziałem XLD, aby nadpisał wszystkie poprzednie pliki, XLD dodał (1)na końcu bardzo podobny plik z …
Chcę wyświetlić listę (lub usunąć lub wykonać inną operację) dla niektórych plików w katalogu, na przykład: $ ls /opt/somedir/ aa bb cc aa.txt bb.txt cc.txt $ ls /opt/somedir/(aa|bb|cc) ## pseudo-bash :p aa bb cc Jak mogę to osiągnąć (bez wcześniejszego cd-do katalogu)?
Załóżmy, że jest jakiś tekst z pliku: (bookmarks ("Chapter 1 Introduction 1" "#1" ("1.1 Problem Statement and Basic Definitions 23" "#2") ("Exercises 31" "#30") ("Notes and References 42" "#34")) ) Chcę dodać 11 do każdego numeru, a następnie "w każdym wierszu, jeśli taki jest, tj (bookmarks ("Chapter 1 Introduction 12" …
Mam ten regex: (?<=prefix).*$ który zwraca dowolny znak następujący po „prefiksie” ciągu i działa dobrze na dowolnych silnikach wyrażeń regularnych online (np. https://regex101.com ). Problem polega na tym, że używam tego wyrażenia regularnego w bash: grep '(?<=prefix).*$' <<< prefixSTRING nic nie pasuje. Dlaczego to wyrażenie regularne nie działa z grep?
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.