Ben awk
gibi sub()
ve gsub()
ile metin/dizge ikame yapabilir biliyorum:Birisi neden awk'in sub()/gsub() 'un bunun gibi çalıştığını açıklayabilir mi?
kent$ echo "fffff"|awk '{gsub('f', "b")}1'
: Ben bir yazım hatası hata yaptı
kent$ echo "fffff"|awk '{gsub("f", "b")}1'
bbbbb
veya
Ancakkent$ echo "fffff"|awk '{gsub(/f/, "b")}1'
bbbbb
bugün, olarak çizgiyi yazdım
ama awk
o ama çıkışım hakkında şikayet etmedi Her zamanki gibi, beklenmedik çıktı, hata bulmak için bazen beni aldı. awk
verdi bana çıkış oldu:
bfbfbfbfbfb
başka bir örnek:
kent$ echo "thanks in advance"|awk '{sub('a', "B")}1'
Bthanks in advance
birisi bana açıklayabilir misiniz garip ikame nasıl yapıldığını: sub()
ile
kent$ echo "fafafafafXX"|awk '{gsub('fa', "B")}1'
BfBaBfBaBfBaBfBaBfBXBXB
örnek garip çok nedir? Joni gelen cevap
kent$ awk --version
GNU Awk 4.0.2
DÜZENLEME
teşekkürler. belki bu örnek daha iyi açıklıyor, onu burada ekleyin:
kent$ echo "thanks in advance"|awk '{f="k";sub('f', "B")}1'
thanBs in advance
kent$ echo "thanks in advance"|awk '{sub('th ank', "B")}1'
awk: cmd. line:2: {sub(th
awk: cmd. line:2: ^unexpected newline or end of string
+1, makul geliyor. – Kent
Bunun biraz riskli olsa bile, kullanılmasının bir hilesi olabileceğini düşünüyorum. :) – Kent