यदि फ़ाइल में दो पंक्तियों में विषम संख्या में दोहरे उद्धरण चिह्नों की संख्या है, तो कुल दोहरे योगों का योग भी होगा, और आप असंतुलित उद्धरणों का पता नहीं लगाएंगे (यह वही है जो मैं मानता हूं कि आप वास्तव में करना चाहते हैं, लेकिन मैं गलत हो सकता हूं )।
यह awk
स्क्रिप्ट इनपुट लाइन की किसी भी पंक्ति की रिपोर्ट करती है जिसमें विषम संख्या में उद्धरण हैं:
awk -F'"' 'NF % 2 == 0 { printf("Line %d has odd quoting: %s\n", NR, $0) }'
हम क्षेत्र विभाजक (सेट FS
) के "
साथ -F'"'
जिसका अर्थ है कि यह अजीब उद्धरण अगर एक लाइन में खानों की भी संख्या है। NF
हाल के रिकॉर्ड में फ़ील्ड्स की संख्या है, और NR
वर्तमान रिकॉर्ड ("लाइन नंबर") की क्रमिक संख्या है।
निम्नलिखित इनपुट को देखते हुए:
$ 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"
हमें मिला
$ 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"
कुछ इस तरह
$ grep -o '"' | wc -l
इस फ़ाइल के लिए "14" लौटाएगा।