সেড ম্যাচ প্যাটার্ন এন বার


14

আমি প্রতিটি ফাইলের জন্য 2 টি শব্দ দিয়ে অংশগুলিতে বিভক্ত করতে চাই।

$cat tmp
word1 word2 word3 word4 word5 word6 word7
$sed -e 's/word. word. /&\n/g' tmp
word1 word2 
word3 word4 
word5 word6 
word7
$sed -e 's/word. \{2\}/&\n/g' tmp
word1 word2 word3 word4 word5 word6 word7

আমি শেষ কমান্ডটি তার আগের মতো একই ফল দেওয়ার প্রত্যাশা করছিলাম। কি সমস্যা?

উত্তর:


17

দুঃখিত, মনে হচ্ছে পোস্টের ঠিক পরে আমি এটি আবিষ্কার করেছি।

এটা করা দরকার

sed -e 's/\(word. \)\{2\}/&\n/g' tmp

স্পষ্টতই প্রথম বন্ধনগুলি {2}পুরো প্যাটার্নটিতে শর্ত প্রয়োগ করতে word.এবং কেবল পূর্ববর্তী স্থানের প্রয়োজন হয় না parent


3
বা ব্যবহার করুনsed -E 's/(word. ){2}/&\n/g' tmp
সাইরাস


1

N বারের সাথে মিলে যাওয়ার সাধারণ ক্ষেত্রে:

$ perl -ple '$N=3;s/(\S+ ){$N}\K/\n/g' tmp
word1 word2 word3 
word4 word5 word6 
word7
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.