pergantian string: semua kejadian


13

Sebuah pertanyaan sederhana, tetapi saya tidak dapat menemukan jawabannya. dokumentasi zsh membuatku kewalahan :-(

function z ()
{
  echo ${1:s/the/THE}
}

$ z thethethe
THEthethe

...

Bagaimana saya bisa mendapatkan semua 'yang' diganti dengan 'THE', bukan hanya kejadian pertama? Dengan zsh itu adalah hal termudah yang tampaknya paling sulit untuk menemukan contoh.

Jawaban:



6

Ini harus melakukan pekerjaan:

VARIABLE=thethethe
echo ${VARIABLE//the/THE}
THETHETHE

3

Jadi, itu harus sederhana:

echo ${1//the/THE}

... tebasan ganda berhasil, dan Anda tidak bisa main-main dengan ": s"

BTW, saya yakin ingin mengucapkan terima kasih kepada situs 'StackExchange' untuk yang sudah ada. Dari sekian banyak tempat yang mungkin ditanyakan, ini adalah yang terbaik - yang hampir tidak selalu mendapat jawaban, tetapi jawaban itu selalu berkualitas tinggi.


1

// berfungsi sempurna jika Anda hanya mencoba mengganti kata tertentu ke semua huruf besar sambil membiarkan sisanya tidak tersentuh. Jika Anda mencoba mengubah semuanya menjadi huruf besar, Anda dapat menggunakan ": u" pada variabel

SOME_ENV_VALUE='thethethe'
echo $SOME_ENV_VALUE:u // outputs: THETHETHE

Anda dapat memverifikasi pengubah mana yang Anda miliki di manual ekspansi dan substitusi zsh

man zshexpn
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.