Dosyadaki iki satırda tek sayıda çift tırnak işareti varsa, toplam çift tırnak toplamı eşit olur ve dengesiz tırnakları algılamazsınız (aslında yapmak istediğinizi varsayıyorum, ama yanlış olabilirim) ).
Bu awk
komut dosyası, giriş satırında tek tırnak işareti içeren herhangi bir satırı bildirir:
awk -F'"' 'NF % 2 == 0 { printf("Line %d has odd quoting: %s\n", NR, $0) }'
Biz saha ayırıcı (set FS
için) "
ile -F'"'
bir çizgi alanlarının eşit sayıda varsa garip tırnak sahip olduğunu hangi yollarla. NF
son kayıttaki NR
alan sayısıdır ve geçerli kaydın sıra numarasıdır ("satır numarası").
Aşağıdaki girdi verildiğinde:
$ cat file
cluster-env,"manage_dirs_on_root","true"
cluster-env,"one_dir_per_partition","false"
cluster-env,override_uid","true"
cluster-env,recovery_enabled","false"
aldık
$ awk -F'"' 'NF % 2 == 0 { printf("Line %d has odd quoting: %s\n", NR, $0) }' file
Line 3 has odd quoting: cluster-env,override_uid","true"
Line 4 has odd quoting: cluster-env,recovery_enabled","false"
Gibi bir şey
$ grep -o '"' | wc -l
bu dosya için "14" değerini döndürür.