একটি টেক্সট ফাইলে কমা দিয়ে সমস্ত সাদা স্পেস প্রতিস্থাপন করুন


10

আমার পাঠ্যের অভ্যন্তরে সমস্ত সাদা স্পেস কমা দিয়ে প্রতিস্থাপন করা দরকার। আমি বর্তমানে এই লাইনটি ব্যবহার করছি তবে এটি কাজ করে না: আমি আউটপুট হিসাবে একটি পাঠ্য ফাইল পাই যা মূলটির সাথে হুবহু:

sed 's/[:blank:]+/,/g' orig.txt > modified.txt

ধন্যবাদ


সেড / র [[: ফাঁকা:]] \ + /, / জি '
মগ 896

@ mug896 উবুন্টুতে আমার জন্য কাজ করেছেন 18.04 আমার ডাবল স্কোয়ার বন্ধনী এবং ++ এর আগে \ এর দরকার ছিল
ডেমন্তানার

উত্তর:


15

সহ sed:

sed -e 's/\s\+/,/g' orig.txt > modified.txt

বা সাথে perl:

perl -pne 's/\s+/,/g' < orig.txt > modified.txt

সম্পাদনা: পার্লে নিউলাইনগুলি বাদ দেওয়ার জন্য আপনি ডাবল নেতিবাচক ব্যবহার করতে পারেন 's/[^\S\n]+/,/g'বা আপনার পছন্দের কেবল সাদা স্থানের অক্ষরের সাথে ম্যাচ করতে পারেন 's/[ \t\r\f]+/,/g'


ধন্যবাদ, তবে এখনও একটি সমস্যা আছে: আমি কমা দিয়ে "পরবর্তী লাইনগুলি \ n" প্রতিস্থাপন করতে চাই না, এবং পার্ল সহ কমান্ডটি বর্তমানে এটি করছে। তিনি লিখেছেন সেড কমান্ড, আপনি এখনও কাজ করে না।
aneuryzm

দুঃখিত আপনাকে +সেডে অপারেটরটি পালাতে হবে , আমি কেবল আমার উত্তরটি আপডেট করেছি updated নিউলাইনগুলি পারলে হোয়াইটস্পেসে থাকে, তাই আপনি যদি নিজের সাদা অংশটি ক্লাসে না যুক্ত করতে চান তবে আপনাকে ম্যানুয়ালি করতে হবে। ওয়েলক হিসাবে আমি এর জন্য দুটি সমাধান যুক্ত করেছি।
কালেব

13

ব্যবহার tr:

tr -s '[:blank:]' ',' <file

এটি যে কোনও অনুভূমিক সাদা স্থানকে কমা দিয়ে প্রতিস্থাপন করবে। যে কোনও পুনরাবৃত্ত সাদা স্থান কেবলমাত্র একটি কমা দিয়ে প্রতিস্থাপন করা হবে।


-1
awk '{print $1","}' Servers | tr -d '[\n]' | xargs echo 

এখানে ফাইলের নাম সার্ভারস .. এটিতে নীচের বিষয়বস্তু রয়েছে ..

Server1
Server2
Server3

যদি আমরা উপরের কমান্ডটি ব্যবহার করি তবে আমরা নীচের আউটপুটটি পেতে পারি ..

Server1,Server2,Server3,


[mohramak@oc3246038448 Desktop]$ cat Servers
Server1
Server2
Server3
[mohramak@oc3246038448 Desktop]$ awk '{print $1","}' Servers | tr -d '[\n]' | xargs echo 
Server1,Server2,Server3,
[mohramak@oc3246038448 Desktop]$ 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.