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


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.