मेरे पास एक .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 वें कॉलम में अलग-अलग तार हैं। मुझे 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" ""
पुनश्च: मैंने टौपर कमांड का उपयोग सुरक्षित पक्ष पर किया है, क्योंकि मुझे यकीन नहीं है कि स्ट्रिंग कम या उच्च मामले में होगी। मुझे यह जानने की जरूरत है कि मेरे कोड में क्या गलत है और अगर AWK का उपयोग करके पैटर्न खोजते समय स्ट्रिंग में स्थान मायने रखता है।
'","'
इसे सीमांकक बनाने के बारे में नहीं सोचा है , अन्यथा इससे मेरी समस्या हल हो जाती ... महान समाधान ...