লাইনে ট্রিলিং কমা মুছুন


10

আমি কীভাবে ব্যাশে ট্রিলিং কমাগুলির সেট মুছব:

a,b,c,d,,,,
1,2,3,,,,

পছন্দসই আউটপুট:

a,b,c,d
1,2,3

এটি করার চেষ্টা করা হয়েছে:

 grep "5628" test.csv | sed 's/,*$//g'

কিন্তু এটি কাজ করে না। ফাইলটি মূলত একটি উইন্ডোজ মেশিন থেকে এসেছে।


2
আপনি কি নিশ্চিত যে এটি কার্যকর হয়নি? আপনি কোন পূর্ণ কমান্ড চালিয়েছেন?
cuonglm

ইতিবাচক। তা হয়নি।
ব্যবহারকারী 2980702

আপনি কি আপনার সঠিক কমান্ডটি সরবরাহ করতে পারেন, দয়া করে ( sedআপনি ফাইল নাম বাদ দিয়ে দেখানো ফিল্টার হিসাবে কাজ করে এবং কোনও ফাইলের স্থানে প্রক্রিয়া করে না )
রোয়াইমা

grep "5628" test.csv |
সেডস

2
আপনার যদি * নিক্সে ফাইলটি ব্যবহার করতে হয় এবং আপনার এটি আবার উইন্ডোতে অনুলিপি করতে সক্ষম না হয়, তবে সিআর / এলএফ থেকে এনএল dos2unixবা এর মতো অন্য কিছুতে লাইন এন্ডিং রূপান্তর করা দীর্ঘ সময়ের মধ্যে সহজ হতে পারে ।
জি-ম্যান বলছেন 'মনিকা পুনরায় ইনস্টল করুন'

উত্তর:


13

আপনি যে আদেশটি দিয়েছেন তা পুনরায় করুন:

grep "5628" test.csv | sed 's/,*$//g'

এটি সমস্ত ট্রেলিং কমাগুলি মুছে ফেলার সাথে '5628' এর সাথে মিলিত লাইনগুলি আউটপুট দেবে। এটি ফাইল আপডেট করবে না test.csv

তবে, আপনি ফাইলটি একটি উইন্ডোজ মেশিন থেকে এসেছেন বলে সূচিত করেছেন, সুতরাং লাইনটি কেবল এনএল এর পরিবর্তে সিআর / এনএল হয়। ফলাফলটি হ'ল লাইনের শেষে একটি লুকানো সিআর রয়েছে এবং পরিবর্তে আপনার একটি কমান্ড লাইন দরকার:

grep "5628" test.csv | sed 's/,*\r*$//'

আসলে, আপনি কেবল একটি আদেশে এটি করতে পারেন:

sed -n '/5628/s/,*\r*$//p' test.csv

আমি স্থান আপডেটে করার চেষ্টা করছি না। শুধু কমা ছাড়া আউটপুট প্রয়োজন
ব্যবহারকারী 2980702

এই কাজ করেছেন আপনাকে অনেক ধন্যবাদ। সুতরাং আমরা ফাইলের শেষে গাড়িতে ফেরার আগে একাধিক কমা (, *) খুঁজছি (\ r * $)। আমি কি সঠিক ?
ব্যবহারকারী 2980702

\r*শূন্য-অর-আরো সি আর অক্ষর জন্য করতে পারবেন (তাই এটা কাজ অব্যাহত থাকবে ইউনিক্স / লিনাক্স উদ্ভূত ফাইল)। আমি \r?একক sedoptionচ্ছিক সিআর চিহ্নিত করতে ব্যবহার করতে পছন্দ করতাম তবে পতাকাটি আমার মাথার উপরের অংশে ইআরএস ব্যবহার করতে বলার জন্য মনে করতে পারছিলাম না । আমি মনে করি এটি -rএখানে কিন্তু অরক্ষিত। ,*পুলিশের এবং ম্যাচ শূন্য-অর-আরো কমা নেই।
রোয়াইমা

gএই ক্ষেত্রে প্রয়োজন হয় না, Ter মাত্র 1 শেষ নাগাদ নির্দিষ্ট করা হয়ে থাকে$
NeronLeVelu

2
sed -n '/5628/ s/,*\r*$//p' test.csv

(কেবলমাত্র ওপেন নয় যা কেবল পেছনের কোমা অপসারণ করতে বলে) এটি একটি পাইপিং প্রক্রিয়া এড়ায়, সরাসরি ফিল্টার এবং রূপান্তর গ্রহণ করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.