Saya telah melihat contoh ini:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Yang mengikuti sintaks ini: ${variable//pattern/replacement}
Sayangnya, pattern
bidang tersebut tampaknya tidak mendukung sintaksis regex penuh (jika saya menggunakan .
atau \s
, misalnya, mencoba mencocokkan karakter literal).
Bagaimana saya bisa mencari / mengganti string menggunakan sintaks regex penuh?
\s
bukan bagian dari sintaks ekspresi reguler standar yang didefinisikan POSIX (baik BRE atau ERE); itu adalah ekstensi PCRE, dan sebagian besar tidak tersedia dari shell. [[:space:]]
adalah padanan yang lebih universal.
\s
dapat diganti oleh [[:space:]]
, dengan cara, .
oleh ?
, dan ekstensi extglob ke bahasa pola dasar shell dapat digunakan untuk hal-hal seperti subkelompok opsional, kelompok berulang, dan sejenisnya.