के साथ awk
:
awk 'NF{NF-=1};1' <in >out
या:
awk 'NF{NF--};1' <in >out
या:
awk 'NF{--NF};1' <in >out
हालांकि यह वूडू जैसा दिखता है, यह काम करता है। इन awk कमांड में से प्रत्येक के तीन भाग हैं।
पहला है NF
, जो दूसरे भाग के लिए एक पूर्व शर्त है। NF
एक चर है जिसमें एक पंक्ति में फ़ील्ड्स की संख्या होती है। AWK में, यदि वे 0 या खाली स्ट्रिंग नहीं हैं तो चीजें सही हैं ""
। इसलिए, दूसरा भाग (जहां NF
कमी है) केवल तब होता है जब NF
0 न हो।
दूसरे भाग (या तो NF-=1
NF--
या --NF
) बस से घटाने पर है NF
चर। यह अंतिम फ़ील्ड को प्रिंट होने से रोकता है, क्योंकि जब आप फ़ील्ड बदलते हैं (इस मामले में अंतिम फ़ील्ड को हटाते हैं), awk
फिर से निर्माण करें $0
, डिफ़ॉल्ट रूप से अंतरिक्ष द्वारा अलग किए गए सभी फ़ील्ड को फिर से बनाएँ। $0
अब अंतिम फ़ील्ड शामिल नहीं है।
अंतिम भाग है 1
। यह जादुई नहीं है, इसका उपयोग केवल अभिव्यक्ति के रूप में किया जाता है true
। यदि कोई awk
अभिव्यक्ति बिना किसी संबद्ध क्रिया के सत्य का मूल्यांकन करती है, तो awk
डिफ़ॉल्ट क्रिया है print $0
।