Saya melihat banyak contoh dan halaman manual tentang bagaimana melakukan hal-hal seperti cari-dan-ganti menggunakan sed, awk, atau gawk.
Namun dalam kasus saya, saya memiliki ekspresi reguler yang ingin saya jalankan pada file teks untuk mengekstrak nilai tertentu. Saya tidak ingin melakukan pencarian-dan-ganti. Ini dipanggil dari bash. Mari gunakan contoh:
Contoh ekspresi reguler:
.*abc([0-9]+)xyz.*
Contoh file masukan:
a
b
c
abc12345xyz
a
b
c
Sesederhana kedengarannya, saya tidak tahu cara memanggil sed / awk / gawk dengan benar. Apa yang saya ingin lakukan, adalah dari dalam skrip bash saya:
myvalue=$( sed <...something...> input.txt )
Hal-hal yang saya coba termasuk:
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