উত্তর:
আপনি awkযে জন্য ব্যবহার করতে পারেন ।
command | awk '{ if (/pattern/) { print > "match" } else { print > "nomatch" } }'
>বিদ্যমান ফাইলগুলি ওভাররাইট করে ফাইলটিতে সমস্ত আউটপুট প্রিন্ট করে। এটি এমনভাবে মূল্যায়ন করা হয় না যে এর ফলে কোনও নতুন লাইন একই উদাহরণ থেকে পুরানো আউটপুটকে ওভাররাইট করে awk। অর্থাৎ, যদি সেখানে একাধিক মিল নেই, ফাইল "ম্যাচ" প্রতিটি ম্যাচ দিয়ে আলাদা করা থাকতে হবে OFS। বিদ্যমান ফাইলগুলির চিকিত্সার মধ্যে পার্থক্য >এবং >>বিদ্যমান।
এখানে একটি sedউদাহরণ রয়েছে:
দ্রষ্টব্য: সিডের wকমান্ডটি স্ক্রিপ্টটি চালানোর সময় একটি বিদ্যমান ফাইলকে ওভাররাইট করবে, তবে কেবলমাত্র সেই নির্দিষ্ট লিখিত কমান্ড ট্রিগার করা হলে; অত: পরrm
rm -f file-{yes,not}
sed -ne '/pattern/bY; w file-not' -e 'b; :Y; w file-yes' file
sed -n '/PATTERN/p;//! w file-not' infile >file-yes
আপনি জোর করে ফাইল যুক্ত করতে পারেন:
awk '{if (/pattern/) print >>"matched"; else print >>"unmatched"; }
বা সংক্ষিপ্ত:
awk '{print >>(/pattern/?"matched":"unmatched")}'
awkতবে এটি কোন মুহুর্তে মূল্যায়ন করে>? শর্তসাপেক্ষে প্রযোজ্য প্রতিবার যদি এটি মূল্যায়ন করা হয় তবে আপনি দুটি এক-লাইন ফাইল দিয়ে শেষ করতে চান ...