Widzę wiele przykładów i stron podręcznika, jak wykonywać takie czynności, jak wyszukiwanie i zamiana za pomocą sed, awk lub gawk.
Ale w moim przypadku mam wyrażenie regularne, które chcę uruchomić w pliku tekstowym, aby wyodrębnić określoną wartość. Nie chcę wyszukiwać i zamieniać. To się nazywa z bash. Posłużmy się przykładem:
Przykładowe wyrażenie regularne:
.*abc([0-9]+)xyz.*
Przykładowy plik wejściowy:
a
b
c
abc12345xyz
a
b
c
Brzmi to prosto, ale nie potrafię poprawnie wywołać sed / awk / gawk. To, co miałem nadzieję zrobić, to z poziomu mojego skryptu bash:
myvalue=$( sed <...something...> input.txt )
Rzeczy, które próbowałem, obejmują:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing