Tek tırnaklı awk ayırıcı nasıl kullanılır?


11

Aşağıdaki gibi SQL çıkışı bilgi çıkarmak için awk kullanmak istiyorum:

(sayım (ayrı sunucu sınıfı) = '2')

Ve bu örnekte 2 olan sayıyı çıkarmamız gerekiyor.

Aşağıdaki gibi bir şey yapmak istiyorum, ancak tek tırnaktan nasıl kaçacağını anlayamıyorum:

<sqlCommand> | awk 'BEGIN{FS="'"}{print $2}'

Awk içinde alan ayırıcısı olarak nasıl bir gerçek tek tırnak alabilirim?

Yanıtlar:


14

Tek tırnaklı bir dizeye tek bir tırnak karakteri eklemek için geçerli dizeyi bitirin, yazın "'"veya \'dizeye yeniden başlayın.

Örneğinizde, bu

awk 'BEGIN{FS="'"'"'"}{print $2}'

veya

awk 'BEGIN{FS="'\''"}{print $2}'

Ancak, -Falan ayırıcısını belirtmek için anahtarı kullanmak daha okunaklı bir kodla sonuçlanır:

awk -F\' '{print $2}'

Neden gelen stil güncellemek mi -F"'"hiç -F\'?
WilliamKF

1
İyi bir sebep yok. İkisi de işe yarıyor ama ilki benim zevkime göre çok fazla alıntı yapıyor.
Dennis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.