নিম্নলিখিত ফর্ম্যাটে আমার কাছে ডেটা রয়েছে -
4,"abc"
8,"def"
9,"ghi"
আমি প্রথম কলামটির মান দ্বিগুণ উদ্ধৃতি দ্বারা ঘিরে রাখতে চাই।
"4","abc"
"8","def"
"9","ghi"
আমি কেমন করে ঐটি করি ?
নিম্নলিখিত ফর্ম্যাটে আমার কাছে ডেটা রয়েছে -
4,"abc"
8,"def"
9,"ghi"
আমি প্রথম কলামটির মান দ্বিগুণ উদ্ধৃতি দ্বারা ঘিরে রাখতে চাই।
"4","abc"
"8","def"
"9","ghi"
আমি কেমন করে ঐটি করি ?
উত্তর:
খুব সাধারণ প্রতিস্থাপন হ'ল:
cat tmp.csv | awk -F, '{sub($1, "\"&\""); print}'
ক্ষেত্রের ডিলিমেটারটি কমা বলে অপশন-এফটি, ডাকে বলে, সাব (স্টিটিউশন) এর যুক্তি প্রথম ক্ষেত্রটি নিজের সাথে (এবং), পূর্বে এবং তারপরে প্রতিস্থাপন করতে বিশুদ্ধকে বলে "।
এটি কেবল একটি দ্রুত এবং নোংরা উপায় (আরও ভাল উপায় থাকবে):
sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/,/","/g' file.csv
প্রথমটি s/"//g
সমস্ত সরিয়ে দেয় "
।
তারপরে লাইনের শুরু এবং শেষে s/^\|$/"/g
একটি যোগ করুন adds
এবং সর্বশেষে প্রতিস্থাপিত হয় ।"
s/,/","/g
,
","
অবশ্যই এই শুধুমাত্র কাজ করে যদি আপনি না "
এবং ,
এ আপনার ক্ষেত্র।
cat
, তবে যাইহোক +1।