নীচের ফর্ম্যাটটি সহ আমার কাছে একটি .CSV ফাইল রয়েছে:
"column 1","column 2","column 3","column 4","column 5","column 6","column 7","column 8","column 9","column 10
"12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013",""
"23455","12312255564","string, with, multiple, commas","string with or, without commas","string 2","USD","433","70%","07/15/2013",""
"23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013",""
"46476","15467534544","lengthy string, with commas, multiple: colans","string with or, without commas","string 2","CAND","388","70%","09/21/2013",""
ফাইলের 5 ম কলামে বিভিন্ন স্ট্রিং রয়েছে। আমার ৫ ম কলাম মানের উপর ভিত্তি করে ফাইলটি ফিল্টার আউট করা দরকার। বলি, বর্তমান ফাইলটি থেকে আমার একটি নতুন ফাইল দরকার যা এর পঞ্চম ক্ষেত্রে "স্ট্রিং 1" মানের সাথে রেকর্ড রয়েছে।
এর জন্য আমি নীচের কমান্ডটি চেষ্টা করেছিলাম,
awk -F"," ' { if toupper($5) == "STRING 1") PRINT }' file1.csv > file2.csv
তবে এটি আমাকে নিম্নলিখিত হিসাবে একটি ত্রুটি ছুঁড়ে ফেলছিল:
awk: { if toupper($5) == "STRING 1") PRINT }
awk: ^ syntax error
awk: { if toupper($5) == "STRING 1") PRINT }
awk: ^ syntax error
আমি তখন নিম্নলিখিতটি ব্যবহার করি যা আমাকে বিজোড় আউটপুট দেয়।
awk -F"," '$5="string 1" {print}' file1.csv > file2.csv
আউটপুট:
"column 1" "column 2" "column 3" "column 4" string 1 "column 6" "column 7" "column 8" "column 9" "column 10
"12310" "42324564756" "a simple string with a comma" string 1 without commas" "string 1" "USD" "12" "70%" "08/01/2013" ""
"23455" "12312255564" "string with string 1 commas" "string with or without commas" "string 2" "USD" "433" "70%" "07/15/2013" ""
"23525" "74535243123" "string with commas string 1 "string with or without commas" "string 1" "CAND" "744" "70%" "05/06/2013" ""
"46476" "15467534544" "lengthy string with commas string 1 "string with or without commas" "string 2" "CAND" "388" "70%" "09/21/2013" ""
পিএস: আমি টিপার কমান্ডটি নিরাপদ দিকে থাকতে ব্যবহার করেছি, কারণ স্ট্রিংটি নিম্ন বা উচ্চতর ক্ষেত্রে হবে কিনা তা সম্পর্কে আমি নিশ্চিত নই। আমার কোডটির সাথে কী ভুল তা আমার জানতে হবে এবং এডাব্লুকে ব্যবহার করে কোনও প্যাটার্ন অনুসন্ধান করার সময় স্ট্রিংয়ের স্থান যদি গুরুত্বপূর্ণ হয়।
'","'
সীমানা হিসাবে তৈরি করার কথা ভাবিনি , অন্যথায় এটি আমার সমস্যার সমাধান করত ... দুর্দান্ত সমাধান ...