একটি অ্যারেতে একটি স্ট্রিং বিভক্ত করতে awk
আমরা ফাংশনটি ব্যবহার করি split()
:
awk '{split($0, a, ":")}'
# ^^ ^ ^^^
# | | |
# string | delimiter
# |
# array to store the pieces
যদি কোনও বিভাজক দেওয়া না FS
হয় তবে এটি স্পেসটি ডিফল্ট করে এটি ব্যবহার করে :
$ awk '{split($0, a); print a[2]}' <<< "a:b c:d e"
c:d
আমরা একটি বিভাজক দিতে পারি, উদাহরণস্বরূপ :
:
$ awk '{split($0, a, ":"); print a[2]}' <<< "a:b c:d e"
b c
যা এর মাধ্যমে সেট করার সমতুল্য FS
:
$ awk -F: '{split($0, a); print a[1]}' <<< "a:b c:d e"
b c
গোকের মধ্যে আপনি পৃথককে একটি রেজিপ্সপ হিসাবে সরবরাহ করতে পারেন:
$ awk '{split($0, a, ":*"); print a[2]}' <<< "a:::b c::d e" #note multiple :
b c
এমনকি চতুর্থ প্যারামিটার ব্যবহার করে প্রতিটি পদক্ষেপে ডিলিমিটার কী ছিল তা দেখুন:
$ awk '{split($0, a, ":*", sep); print a[2]; print sep[1]}' <<< "a:::b c::d e"
b c
:::
আসুন জিএনইউ অ্যাজকের ম্যান পেজটি উদ্ধৃত করুন :
বিভক্ত (স্ট্রিং, অ্যারে [, ফিল্ডস্যাপ [, seps]])
ডিভাইড স্ট্রিং টুকরা দ্বারা পৃথক fieldsep এবং টুকরা সঞ্চয় অ্যারে এবং বিভাজক স্ট্রিং seps অ্যারে। প্রথম টুকরা সংরক্ষণ করা হয় array[1]
, দ্বিতীয় টুকরা মধ্যে array[2]
, এবং আরও। তৃতীয় আর্গুমেন্ট, ফিল্ডস্যাপের স্ট্রিং মান হ'ল একটি রেজিপ্যাক্স যেখানে কোথায় স্ট্রিং বিভক্ত হবে তা বর্ণনা করে ( এফএস যতটা ইনপুট রেকর্ডগুলি কোথায় বিভক্ত করতে হবে তা বর্ণনা করে এমন একটি রেজিএক্সপ্যাক হতে পারে)। যদি ফিল্ডস্যাপ বাদ দেওয়া হয়, তবে FS এর মান ব্যবহার করা হয়। split()
তৈরি উপাদানগুলির সংখ্যা প্রদান করে। সেপস হল একটি gawk
এক্সটেনশন, এর seps[i]
মধ্যে বিভাজক স্ট্রিং রয়েছেarray[i]
এবং array[i+1]
। যদি ফিল্ডস্যাপটি একটি একক স্থান হয় তবে যে কোনও শীর্ষস্থানীয় শ্বেতস্পেস প্রবেশ করে seps[0]
এবং যে কোনও পূর্ববর্তী সাদা স্থান , ুকে যায় seps[n]
, সেখানে n এর ফেরত মান হয় split()
(অর্থাত্ অ্যারেতে উপাদানের সংখ্যা)।
OFS
মধ্যেprint
পৃথক যুক্তি হিসাবে দেখিয়ে কমা করুন stick