জিএনইউ awk(সাধারণত লিনাক্স সিস্টেমে পাওয়া যায়) সংস্করণ ৪.১.০, কমান্ড লাইনের awkসাথে -iবা " উত্স গ্রন্থাগার" অন্তর্ভুক্ত করতে সক্ষম --include। জিএনইউ দিয়ে বিতরণ করা উত্স গ্রন্থাগারগুলির awkমধ্যে একটি হ'ল inplace:
$ cat file
hello
there
$ awk -i inplace '/hello/ { print "oh,", $0 }' file
$ cat file
oh, hello
আপনি দেখতে পাচ্ছেন, এটি awkকোডের আউটপুটটিকে ইনপুট ফাইলটি প্রতিস্থাপন করে। thereপ্রোগ্রামটি আউটপুট না করায় লাইন উক্তিটি রাখা হয় না।
awkকোনও ফাইলের স্ক্রিপ্ট সহ , আপনি এটির মতো ব্যবহার করবেন
awk -i inplace -f script.awk datafile
যদি awkভেরিয়েবলটি INPLACE_SUFFIXকোনও স্ট্রিংয়ে সেট করা থাকে তবে লাইব্রেরিটি ফাইলের নাম প্রত্যয় হিসাবে এটির সাথে মূল ফাইলটির ব্যাকআপ তৈরি করবে।
awk -i inplace -v INPLACE_SUFFIX=.bak -f script.awk datafile
আপনার যদি বেশ কয়েকটি ইনপুট ফাইল থাকে তবে প্রতিটি ফাইলের সাথে পৃথক পৃথকভাবে স্থান সম্পাদনা করা হবে। তবে আপনি inplace=0সেই ফাইলের আগে কমান্ড লাইন ব্যবহার করে কোনও ফাইলের জন্য (বা ফাইলের একটি সেট) জন্য জায়গা-এ সম্পাদনা বন্ধ করতে পারেন :
awk -i inplace -f script.awk file1 file2 inplace=0 file3 inplace=1 file4
উপরের কমান্ডে, file3জায়গায় জায়গায় সম্পাদনা করা হবে না।
একটি একক ফাইলের আরও পোর্টেবল "ইন-প্লেস এডিট" এর জন্য, ব্যবহার করুন
tmpfile=$(mktemp)
cp file "$tmpfile" &&
awk '...some program here...' "$tmpfile" >file
rm "$tmpfile"
এটি কোনও অস্থায়ী স্থানে ইনপুট ফাইলটি অনুলিপি করবে, তারপরে awkমূল ফাইলের নামটিতে পুনর্নির্দেশের সময় অস্থায়ী ফাইলটিতে কোডটি প্রয়োগ করবে ।
এই ক্রমে ক্রিয়াকলাপগুলি করা ( awkআসল ফাইলে চলমান , মূল ফাইলে নয়) নিশ্চিত করে যে মূল ফাইলটির ফাইল মেটা-ডেটা (অনুমতি এবং মালিকানা) পরিবর্তন করা হয়নি।