मेरे पास वर्तमान निर्देशिका की उपनिर्देशिकाओं में फाइलें हैं जिनके अंत में नई लाइनें हो सकती हैं या नहीं; मैं ऐसी फाइलें कैसे पा सकता हूं जिनमें अंत में कोई नई रेखा न हो?
मैंने यह कोशिश की है:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
लेकिन यह काम नहीं करता है। awk 'END{print}' $file
खाली नई लाइन से पहले लाइन प्रिंट करता है, उसी के रूप में tail -n 1 $file
।
awk 'END{print}' $file
: यह पूरी तरह से $ फ़ाइल की सामग्री को अनदेखा करता है, और "$ फ़ाइल" में निहित सभी फ़ाइलों को पार्स करने के बाद यह एक नई पंक्ति जोड़ता है। जैसा कि यह एकमात्र चीज है जो कमांड प्रिंट को printf '\n'
जगाती है , इसे इसके साथ प्रतिस्थापित किया जा सकता है: ($ में किसी भी फ़ाइल के मेंटिनो के बिना) और एक ही काम करें। मुझे लगता है कि यह वह नहीं है जो आप लक्ष्य कर रहे थे (यानी: फ़ाइल की अंतिम पंक्ति प्रिंट करें?)
c
करता है और ऐसा FreeBSD करता है, लेकिन मैंने इस पर ध्यान नहीं दिया कि इसे कार्यान्वयन-निर्भरता के रूप में प्रलेखित किया गया है: gnu.org/software/gawk/manual/… । तो ऐसा होता है लेकिन हमेशा नहीं।