অক্ষর থেকে মুক্তি পেতে সেড ব্যবহার করে <>


18

লাইনগুলি সহ আমার কাছে একটি ফাইল রয়েছে:

...
... <230948203[234]>, ...
... <234[24]>, ...
..

আমি অক্ষরগুলি সরানোর জন্য < ,এবং >প্রতিটি লাইন থেকে সেড ব্যবহার করতে চাই

আমি চেষ্টা করার চেষ্টা করেছি sed 's/<>,//g'কিন্তু এটি কার্যকর হয়নি (এটি কোনও পরিবর্তন করেনি)। আমার কি এই বিশেষ চরিত্রগুলি থেকে বাঁচতে হবে? একক sedকমান্ড ব্যবহার করে একাধিক অক্ষর মুছা সম্ভব ?


2
bash-3.2$ echo "<230948203[234]>," | tr '<>,' ' '-> 230948203 [234] -EDITED Thanks to Paul

3
@ শ্রীকানথ্রাডিক্স: এটি সেই অক্ষরগুলিকে সরিয়ে দেয় না, তাদের স্থানগুলির সাথে প্রতিস্থাপন করবে। আপনি চান tr -d '<>,' ''(ক্রিস ডাউন এর উত্তরে)।
— কিথ থম্পসন

1
@ কিথথম্পসন: tr -d '<>,'শেষ পর্যন্ত '' ছাড়া, না?
— ব্যবহারকারী অজানা

@ ইউজারুননড: হ্যাঁ, সংশোধনের জন্য ধন্যবাদ।
— কিথ থম্পসন

উত্তর:


43

সাথে sed:

sed 's|[<>,]||g'

সাথে tr:

tr -d '<>,'

2
সঠিক, তবে আমি ব্যক্তিগতভাবে |একটি সীমানা হিসাবে কিছুটা বিভ্রান্তিকর হিসাবে ব্যবহার দেখতে পাই । sed 's/[<>]//g'পড়তে কিছুটা সহজ।
— কিথ থম্পসন

@ কিথথম্পসন আমি এটি ব্যবহারিকতার জন্য ব্যবহার করি। আমি |আক্ষরিক সাথে মোকাবিলা করার চেয়ে নিজেকে আক্ষরিক (এবং এইভাবে এড়িয়ে যেতে হবে) মোকাবেলা করতে দেখি /।
— ক্রিস ডাউন

2
একটি সুস্পষ্ট পয়েন্ট। অন্যদিকে, |প্রায়শই একটি মেটা-চরিত্রও থাকে, কিছু রিজেক্সেপ সিনট্যাক্সে পরিবর্তনের জন্য ব্যবহৃত হয় (যদিও sedএর জন্য বিশেষত প্রয়োজন \|)। ব্যক্তিগতভাবে, আমার যদি আক্ষরিক /চরিত্রগুলির সাথে ডিল করার প্রয়োজন হয় , তবে আমি সাধারণত ,সীমানা হিসাবে ব্যবহার করি ।
— কিথ থম্পসন

1
উপরে উল্লিখিত ব্যক্তিগত / সুনির্দিষ্ট পরিস্থিতিগুলি বাদ দিয়ে একটি অ-মানক ডিলিমিটার ব্যবহার করার সময় একটি অভ্যন্তরীণ বাক্য গঠন পার্থক্য রয়েছে। প্রথম অ- / ডিলিমিটার অবশ্যই প্রতিটি printf 'a\nb\nc\n' | sed -n '\|a|,\|b|p'
— সেড

8

আর একবার চেষ্টা কর: sed 's/[<>,]//g'


সেখানে উল্লম্ব বারগুলি কীসের জন্য?
— পল টমলিন

সেড এর / [<|> |] / / g '- অনুসন্ধানগুলি করে; / সীমাবদ্ধ হয়; [[] বন্ধনীগুলি আমাদের একাধিক জিনিসের সন্ধান করতে পারে; | উল্লম্ব বারটি একটি যৌক্তিক বা এবং জিটি বিশ্বব্যাপী বা পুরো ফাইলটি অনুসন্ধান করতে হয়।
— ইমান

3
আপনার যা দরকার তা না (অথবা, প্রকৃতপক্ষে, চান) |মধ্যে গুলি []। ব্যবহার 's/[<>,]//g'।
— কেভিন

2
আপনার একটি উল্লম্ব বার দরকার নেই। বর্গাকার বন্ধনীর মধ্যে যে কোনও কিছুই তালিকা হিসাবে অনুসন্ধান করা হয়। sed 's/[<>,]/ /g'ঠিক ঠিক কাজ করবে আপনার ধারণা বাদে উল্লম্ব বারগুলিও মুছে ফেলবে।
— পল টমলিন

যোগ করার জন্য: সম্ভবত আপনি নিয়মিত মত প্রকাশের দিকে নজর রাখতে চান, এটি অন্যতম সহজ উদাহরণ, তবে ইতিমধ্যে শক্তিটি প্রদর্শন করছে।
— বার্নহার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.