মনে হচ্ছে আপনার উদ্ধৃতিগুলি ভুল হয়েছে। আপনাকে নীচের মতো করতে হবে
awk -F"," 'BEGIN { OFS = "," } {$2="\"2.4.0\""; print}' test.csv > output.csv
এটি GNU awk man পৃষ্ঠাতে ব্যাখ্যা করা হয়েছে - 3.2 এস্কেপ সিকোয়েন্সস
কিছু অক্ষরকে আক্ষরিকভাবে স্ট্রিং ধ্রুবক ("foo")
বা রিজেক্সপ কনস্ট্যান্টস ( /foo/
) এ অন্তর্ভুক্ত করা যায় না। পরিবর্তে, এগুলিকে এস্কেপ সিকোয়েন্সগুলির সাথে উপস্থাপন করা উচিত, যা ব্যাকস্ল্যাশ ( \
) দিয়ে শুরু হওয়া অক্ষর ক্রম । একটি পালানোর ক্রমের একটি ব্যবহার একটি স্ট্রিং ধ্রুবকটিতে ডাবল-কোট অক্ষর অন্তর্ভুক্ত করা হয়। যেহেতু একটি সরল ডাবল উদ্ধৃতি স্ট্রিংটি শেষ করে, আপনার অবশ্যই \"
স্ট্রিংয়ের অংশ হিসাবে একটি আসল ডাবল-উদ্ধৃতি চরিত্র উপস্থাপন করতে ব্যবহার করবেন ..
আচরণের কারণটি আমি যতটা বুঝতে পেরেছি, awk
মনে হয় 2.4.0
আপনার ওপি থেকে অতিরিক্ত উদ্ধৃতি সহ একটি সংখ্যার শব্দ হিসাবে ব্যাখ্যা করা হয়েছে এবং প্রথম বিন্দুর পরে যথাযথতা হারাতে স্থির করেছে।
অর্থাত
$2="\""2.4.0"\""
ন্যায়বান হয়
$2=""2.4.0""
যা awk
আর স্ট্রিং হিসাবে বোঝে না। আপনি সহজভাবে এই আচরণটি পুনরুত্পাদন করতে পারেন
awk 'BEGIN { print ""2.4.0"" }'
2.40
যা আপনি যখন ফলাফল হতে হবে
awk 'BEGIN { print 2.4.0 + 0 }'