গ্রেপ: সম্পূর্ণ লাইনটি অনুসন্ধান এবং প্রতিস্থাপন করুন


13

আদেশ

 grep "foo" myfile.txt

আমার ফাইলে সমস্ত মিলে যাওয়া লাইন মুদ্রণ করে।

এখন আমি সম্পূর্ণ রেখাকে অন্য স্ট্রিংয়ের সাথে প্রতিস্থাপন করতে চাই । আমি এটা কিভাবে করবো?

উত্তর:


13

আপনি যদি পুরো লাইনের একটি স্ট্রিংয়ের সাথে মেলে, তবে আপনি sরেডেক্সের সাহায্যে সিডের কমান্ডটি বাকী লাইনের অংশটি আপ করতে পারেন:

sed -i 's/^.*foo.*$/another string/' myfile.txt

বা cএক সাথে ম্যাচের লাইনটি প্রতিস্থাপন করতে কমান্ডটি ব্যবহার করুন :

sed -i '/foo/ { c \
another string
}' myfile.txt

আপনি যদি প্রম্পটে মাল্টলাইন কমান্ড টাইপ করতে না চান, আপনি পরিবর্তে এটি কোনও স্ক্রিপ্টে রাখতে পারেন:

$ cat foo.sed
/foo/ { c \
another string
}

$ sed -i -f foo.sed myfile.txt

ধন্যবাদ! যখন আমি দ্বিতীয় বিকল্পটি ব্যবহার করি আমি পেয়েছি: সেড: -e এক্সপ্রেশন # 1, চর 0: তুলনামূলক `` '
ক্ল্যাম্প

প্রথম লাইনের শেষে, আপনাকে type টাইপ করতে হবে এবং তারপরে রিটার্নটি হিট করতে হবে - এটি গুরুত্বপূর্ণ যে first প্রথম নিউলাইনটি থেকে পালিয়ে যায়। তারপর, নিশ্চিত করুন }'একটি পৃথক লাইনে থেকে another stringপ্রতিস্থাপন হল: সবকিছু দ্বিতীয় লাইনে সহ }যদি আপনি এটি সেখানে রাখা।
24:44

-1

আপনি ব্যবহার করতে পারেন inplace এর functionnality sed :

sed -i -e 's/foo/bar/' myfile.txt

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