Bu soru için bir çözüm bulmaya çalışıyordum . awkÇözüm için kullanmak istedim .
Giriş dosyam aşağıdaki gibi bir şey.
-bash-3.2$ cat file
ramesh
ramesh_venkat
ramesh3_venkat3
ramesh4
ramesh5
venkat
venkat3
venkat4
awkİkinci değerleri _aşağıdaki gibi ayıklamak için komut kullandım .
awk -F "_" '{print $2}' file
Bununla birlikte, yukarıdaki komut doğru değerleri yazdırsa da, çıktımda boş satırlar alıyorum. 2 sorum var.
Soru 1
Nasıl sadece almak o kadar çıktıda boş satırları kaldırmak venkatve venkat3çıktıda?
Ben kullanırsanız printfyerine printskinTenimde awk, ben olsun venkatvenkat3elde etmek istediği değildir çıktı olarak. Çıktıyı istiyorum,
venkat
venkat3
soru 2
Bu değerleri ilişkilendirilebilir bir dizi veya başka bir şey olarak kullanarak , değerlerin gerçekten $1sütunda olup olmadığını nasıl bulabilirim ?
Gibi bir şey başarmak istedim,
awk -F "_" '$2==1{print $1}' file
DÜZENLE
awkStephane'nin çözümünü fark etmedim . Bahsettiğim ile aynı şeyi yapıyor mu?
awkaynı şeyi yapmıyor. Yaklaşımınız, bir kelimenin yalnızca birbirinden ayrılmış olması durumunda başka bir kelimede bulunabileceğini varsayar_. OP örneği için bu doğru olsa da, gönderilen cevapların tümüdoglionsadece gibi değil , aynı zamanda da ele alınmaktadırdog_lion.