সেড দিয়ে একাধিক লাইন কীভাবে সন্নিবেশ করা যায়


10

আমি এটি যুক্ত করতে চাই

#this 
##is my 
text

লাইনের আগে

the specific line 

আমি এই চেষ্টা করেছিলাম

sed -i '/the specific line/i \
#this 
##is my 
text
' text.txt

তবে এটি কেবল 'পাঠ্যে' যুক্ত করে।

আমিও সঙ্গে বিভিন্ন সমন্বয় চেষ্টা \এবং " "কিন্তু কিছুই কাজ।

উত্তর:


4

নতুন লাইনের সাথে:

% sed -i '/the specific line/i #this\n##is my\ntext' foo

% cat foo
#this
##is my
text
the specific line

9

আপনি কিছু লাইনের শেষে পিছনের ব্যাকস্ল্যাশ মিস করছেন (এবং আপনি যে সর্বশেষ লাইনটি সন্নিবেশ করতে চান তার শেষে একটি এক্সলসিভ নিউলাইন রয়েছে):

sed -i '/the specific line/i \
#this\
##is my\
text' file
% cat file
foo
the specific line
bar

% sed -i '/the specific line/i \
#this\
##is my\
text' file

% cat file
foo
#this 
##is my 
text
the specific line
bar

1

প্রতিস্থাপনের স্ট্রিংয়ে যখন নতুন লাইন এবং স্পেস থাকে তখন আপনি অন্য কিছু ব্যবহার করতে পারেন। আমরা ls -lকিছু টেম্পলেট ফাইলের মাঝে আউটপুট in োকানোর চেষ্টা করব ।

awk 'NR==FNR {a[NR]=$0;next}
    /Insert index here/ {for (i=1; i <= length(a); i++) { print a[i] }}
    {print}'
    <(ls -l) text.txt

আপনি যখন কোনও লাইনের পরে কিছু সন্নিবেশ করতে চান, আপনি আদেশটি সরিয়ে নিতে পারেন {print}বা এতে স্যুইচ করতে পারেন:

sed '/Insert command output after this line/r'<(ls -l) text.txt

আপনি একটি লাইন যুক্ত করার আগে serোকানোর জন্য সেডও ব্যবহার করতে পারেন

sed 's/Insert command output after this line/ls -l; echo "&"/e' text.txt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.