Mam plik o następującej treści:
(((jfojfojeojfow
//
hellow_rld
(((jfojfojeojfow
//
hellow_rld
Jak mogę wyodrębnić każdą linię rozpoczynającą się od nawiasu?
grep
sed
regex
text-processing
użytkownik3069326
źródło
źródło
Odpowiedzi:
Symbolem początku linii jest
^
. Tak więc, aby wydrukować wszystkie wiersze, których pierwszym znakiem jest(
, chciałbyś dopasować^(
:grep
sed
źródło
Za pomocą
perl
Wynik:
Wyjaśnienie (część wyrażenia regularnego)
/^\(/
^
potwierdź pozycję na początku łańcucha\(
dopasowuje postać(
dosłownieźródło
Oto
bash
jeden liniowiec:Tutaj czytamy każdą linię wejściową i jeśli linia zaczyna się od
(
, linia jest drukowana. Główny test jest wykonywany przez[[ $i =~ ^\( ]]
.Używanie
python
:Tutaj
line.startswith('(')
sprawdza, czy linia zaczyna się od(
, jeśli tak, to linia jest drukowana.źródło
awk
awk '/^\(/' testfile.txt
Wynik
Pyton
Jako jedno-liniowy python:
Lub alternatywnie:
Wygląd BSD
look
jest jednym z klasycznych, ale mało znanych narzędzi uniksowych, które pojawiło się w AT&T Unix w wersji 7. Odman look
:Wynik:
źródło
Możesz zrobić odwrotnie.
lub
źródło
W tym celu użyj polecenia grep. Zakładając, że plik o wspomnianej zawartości nazywa się t.txt:
Z dodatkowym argumentem „--color” możesz nawet zobaczyć w terminalu, który kolor pasuje. Ta instrukcja również nie pasuje do pustych linii.
źródło
(
, nie tylko tych, które zaczynają się od jednego.