sed
স্ট্রিং লিটারেলগুলিতে ব্যবহারের জন্য উপযুক্ত কিছু অক্ষরযুক্ত এমন পাঠ্য তৈরি করতে ব্যবহার করা সহজ:
sed "s/\\\\/\\\\\\\\/g"
sed "s/\\\"/\\\\\\\"/g"
তবে আমি কীভাবে নতুন লাইনের অক্ষরযুক্ত টেক্সট ফাইলের সাথে অনুরূপ কিছু করতে পারি?
sed
স্ট্রিং লিটারেলগুলিতে ব্যবহারের জন্য উপযুক্ত কিছু অক্ষরযুক্ত এমন পাঠ্য তৈরি করতে ব্যবহার করা সহজ:
sed "s/\\\\/\\\\\\\\/g"
sed "s/\\\"/\\\\\\\"/g"
তবে আমি কীভাবে নতুন লাইনের অক্ষরযুক্ত টেক্সট ফাইলের সাথে অনুরূপ কিছু করতে পারি?
উত্তর:
ব্যবহার করুন:
sed ':a;N;$!ba;s/\n/\\n/g'
কোনটি সদর ব্যবহার করে আমি একটি নতুন লাইন () n) প্রতিস্থাপন করতে পারি তা থেকে উত্তরটি ব্যবহার করে? এখানে প্রশ্নের সাথে মেলে প্রতিস্থাপন হিসাবে একটি পালানো নিউলাইন চরিত্রকে প্রতিস্থাপন করা।
সেড লাইন ভিত্তিক, এবং নিউলাইন চরিত্রগুলি প্রতিস্থাপন করার চেষ্টা করার সময় এটি সমস্যা সৃষ্টি করতে পারে।
সেডের জন্য অফিসিয়াল ডকুমেন্টেশনগুলি নিউলাইন চরিত্রগুলির একটি নির্দিষ্ট রেফারেন্স তৈরি করে এবং জানিয়েছে যে সেডে যাওয়ার আগে সেগুলি ছিনিয়ে নেওয়া হয়।
আমি পরামর্শ দেব যে 'ট্র' সম্ভবত এখানে আরও ভাল ফিট হবে।
উদাহরণস্বরূপ, স্পেস সহ নতুন লাইনের অক্ষরগুলি প্রতিস্থাপন করতে:
tr '\n' ' ' < inputfile
[\r\n]
ক্লিনার হবে না ?
tr "\n" "\\n"
এই প্রশ্নটি পোস্ট করার আগে আমি ব্যবহার করার চেষ্টা করেছি এবং এটি কেবল নিউলাইন চরিত্রগুলিকে ব্যাকস্ল্যাশগুলির সাথে প্রতিস্থাপন করেছে। দেখে মনে হচ্ছে কেবল একটি ক্রমকে কেবল একটি চরিত্রে পরিণত করা হয়েছে।
আমি ডেভিড ময়তানের সমাধানটি প্রসারিত করতে চাই :
cat /etc/passwd | perl -e 'while(<>) { $_ =~ s/[\r\n]/__NEWLINE__/g; print "$_" }'
আমারও এই সমস্যা ছিল
আপনি যথাযথ পালানোর অনুক্রমের সাথে প্রতিটি নিউলাইন শুরু করতে \ একটি ফাংশনটি ব্যবহার করতে পারেন, তারপরে ফলস্বরূপ ফাংশনটি প্রতিধ্বনিত-এন-এ করুন যা নিউলাইনগুলিকে দমন করে।
echo -n $(sed '\a
\\n');
সেড কমান্ডের আগে আপনি প্রথম বন্ধনীতে যা-কিছু করুন তা আটকে দিন।