जब तक आपके पास GNU 4.1.0 या बाद का समय नहीं है ...
आपके पास ऐसा विकल्प नहीं होगा जैसा कि sed के -i
विकल्प के बजाय ऐसा करते हैं:
$ awk '{print $0}' file > tmp && mv tmp file
नोट: -i
यह जादू नहीं है, यह एक अस्थायी फ़ाइल भी बना रहा है जो sed
आपके लिए इसे संभालती है।
ग्नू के रूप में 4.1.0 जाग ...
GNU awk
इस कार्यक्षमता को संस्करण 4.1.0 (10/05/2013 को जारी) में जोड़ा गया । यह -i
जारी किए गए नोटों में वर्णित विकल्प के रूप में देने के लिए उतना सीधा नहीं है :
नए -i विकल्प (xgawk से) का उपयोग awk लाइब्रेरी फ़ाइलों को लोड करने के लिए किया जाता है। यह -f से अलग है कि पहले गैर-विकल्प तर्क को एक स्क्रिप्ट के रूप में माना जाता है।
आपको inplace.awk
एक्सटेंशन को ठीक से इनवॉइस करने के लिए बंडल किए गए फ़ाइल शामिल करने की आवश्यकता है जैसे:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
चर INPLACE_SUFFIX
का उपयोग बैकअप फ़ाइल के लिए एक्सटेंशन को निर्दिष्ट करने के लिए किया जा सकता है:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
मुझे खुशी इस सुविधा जोड़ दिया गया है हूँ, लेकिन मेरे लिए, कार्यान्वयन बहुत awkish के रूप में सत्ता भाषा की संक्षिप्तता से आता है और नहीं है -i inplace
बहुत लंबा 8 अक्षर है imo ।
यहां आधिकारिक शब्द के लिए मैनुअल का लिंक दिया गया है।