Ini perintahnya :
grep '(2)[[:digit:]]{1}' numbers
Yang saya inginkan adalah mencocokkan tepat 2 digit setelah digit '2', 3 digit jika saya mengubah digit '2' menjadi '3' dalam ekspresi saya, 4 digit jika ...
Saya menggunakan referensi balik di sini tetapi ketika saya menjalankan perintah ini saya memiliki output berikut:
grep: invalid content of {}
Bagaimana seseorang bisa mengubah ekspresi saya?
solusi pertama :
Seperti yang dijawab serge :
2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}
Itu sebenarnya bisa bekerja, tapi misalkan saya punya (34)
sebagai sub-ekspresi pertama, saya berharap saya dapat mereferensikan kembali angka tersebut sehingga saya tidak perlu mengimplementasikan 34 kasus (atau lebih).
Jawaban yang Diterima:
Referensi balik tidak diperbolehkan di sini. Anda harus menulis ekspresi yang akan menjelaskan semua kemungkinan kasus, misalnya:
2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}