Anda dapat menggunakan sed
untuk ini. Di BSD sed
:
echo "foo 'bar'" | sed -E "s/.*'([^']+)'.*/\\1/"
Atau, tanpa -E
opsi:
sed "s/.*'\([^']\+\)'.*/\1/"
Ini tidak berfungsi untuk input multiline. Untuk itu Anda membutuhkan:
sed -n "s/.*'\([^']\+\)'.*/\1/p"
Meskipun grep tidak dapat menampilkan grup tertentu, Anda dapat menggunakan pernyataan lookahead dan behind untuk mencapai apa yang Anda inginkan:
echo "foo 'bar'" | grep -Po "(?<=')[^']+(?=')"
Anda dapat menggunakan \K
untuk menyetel ulang dan membuang teks pencocokan sebelah kiri beserta lookahead yang tidak ditambahkan ke teks pencocokan:
$ echo "foo 'bar'" | grep -oP "'\K[^']+(?=')"
bar
grep GNU saja.
Bagaimana cara mengeluarkan suara menggunakan speaker internal dari baris perintah?
Apa yang menyebabkan semua baris ini menyatakan -x … ketika saya membuka terminal?