ইউনিক্স - ডাবল উদ্ধৃতি সহ সিএসভির চারপাশের প্রথম কলাম


2

নিম্নলিখিত ফর্ম্যাটে আমার কাছে ডেটা রয়েছে -

4,"abc"
8,"def"
9,"ghi"

আমি প্রথম কলামটির মান দ্বিগুণ উদ্ধৃতি দ্বারা ঘিরে রাখতে চাই।

"4","abc"
"8","def"
"9","ghi"

আমি কেমন করে ঐটি করি ?

উত্তর:


6

খুব সাধারণ প্রতিস্থাপন হ'ল:

cat tmp.csv | awk -F, '{sub($1, "\"&\""); print}'

ক্ষেত্রের ডিলিমেটারটি কমা বলে অপশন-এফটি, ডাকে বলে, সাব (স্টিটিউশন) এর যুক্তি প্রথম ক্ষেত্রটি নিজের সাথে (এবং), পূর্বে এবং তারপরে প্রতিস্থাপন করতে বিশুদ্ধকে বলে "।


অকার্যকর ব্যবহারcat , তবে যাইহোক +1।
23:57

ঠিক। Awk -F, '; উপ ($ 1, "\" & \ "") হওয়া উচিত; মুদ্রণ t 'tmp.csv। টিওয়াই
মারিয়াসমাতুটিয়

0

এটি কেবল একটি দ্রুত এবং নোংরা উপায় (আরও ভাল উপায় থাকবে):

sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/,/","/g' file.csv

প্রথমটি s/"//gসমস্ত সরিয়ে দেয় "
তারপরে লাইনের শুরু এবং শেষে s/^\|$/"/gএকটি যোগ করুন adds এবং সর্বশেষে প্রতিস্থাপিত হয় ।"
s/,/","/g,","

অবশ্যই এই শুধুমাত্র কাজ করে যদি আপনি না "এবং , আপনার ক্ষেত্র।


0

এটি আপনার (জিএনইউ সেড) কাজ করতে পারে:

sed 's/[^,]*/"&"/' file
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.