এসইডি: শেষ লাইনের পরে পাঠ্য প্রবেশ করান?


76

কমান্ড একটি ফাইলের শুরুতে একটি ট্যাগ সন্নিবেশ:

sed -i "1s/^/<?php /" file

আমি কীভাবে এসইডি দিয়ে প্রতিটি ফাইলের শেষে কিছু inোকাতে পারি?


3
{ cat file; echo 'END OF FILE'; } > newFile , এটি sh কে ধন্যবাদও কাজ করে। *। (

4
একটি সরল echo "Cool Text" >> fileএছাড়াও কৌশল করা উচিত।
ডানপে

উত্তর:


93

sed -e "\$aTEXTTOEND" সহজতম উপায়।

কিভাবে এটা কাজ করে

$শেষ লাইনের সাথে মেলে (এটি একটি সাধারণ sedঠিকানা; 4aTEXTTOENDচতুর্থ লাইনের পরে সন্নিবেশ করানো হবে), aঅ্যাপেন্ড কমান্ড, এবং TEXTTOENDকী যুক্ত করা উচিত।


একটি মেকফিলের মধ্যে $$ হিসাবে পালাও
স্টিভস্লিভা

ওএস এক্স এর জন্য sed -e '$a\NEWLINE\\'। একটি আসল নতুন লাইনের সাথে NEWLINE প্রতিস্থাপন করুন।
হোর্হে বুকারান

13
sed -i -e "\ T aTxtTOEND" <ফাইল নাম> সম্পূর্ণ কমান্ড হবে।
লাসে মায়ার

2
ম্যাকোসে কাজ করছেন না এমনকি জর্জি বুকারান মন্তব্যও নয়: সেড: 1: "$ a \ NEWLINE \\": কমান্ড শেষে characters এর পরে অতিরিক্ত অক্ষর
ইমানুয়েল পাওলিনী

1
ডিবিয়ান 9 এ এটি শেষ লাইনের শেষে যুক্ত করার পরিবর্তে একটি নতুন লাইন যুক্ত করে।
লুসিয়ানো এন্ড্রেস মার্টিনি

31

সেক্ষেত্রে ব্যবহার করার দরকার নেই sed। কেমন

echo "<?php" >> file

2
যথেষ্ট সত্য, কিন্তু আপনি অনুমান করতে পারেন যে ওপি এর ব্যবহারের ক্ষেত্রে "সঙ্গে ফাইল bracketing হয় <php " এবং " >", এবং এক বারেই সকল নির্বাচিত বিষয়বস্তু উদ্ধৃত, তাই সে সম্ভবত সত্যিই একটি চায় sedটুকরা।
ডিএমকেহে

2
এছাড়াও যদি আপনি এটি করেন এবং কোনও নতুন লাইন না চান, তবে প্রতিধ্বনি ব্যবহার করুন
ভিঙ্কো ভার্সালভিক

2
আমি অনুমান করতে পছন্দ করি না প্রতিবার চেষ্টা করার সময় আমি ভুল হয়েছি।

4
স্বীকৃত উত্তরটি বেশি কার্যকর হওয়ার অন্য কারণ হ'ল এটির প্রেন্ডিংয়ের ক্ষেত্রে এটি sudoএই প্রকরণটি ব্যর্থ করে দেয় কারণ নির্ধারিত echoফাইলের চেয়ে বিল্ট-ইন শেল কমান্ডটি পাওয়া যায়$PATH
টনি সিজারো

@TonyCesaro: echoএকটি বিল্ট-ইন রয়েছে কিন্তু এছাড়াও একটি এক্সিকিউটেবল পাওয়া ফাইল$PATH
Zan Lynx

24

ধরে নিচ্ছি আপনি ফাইলগুলিতে শেষের পিএইচপি ট্যাগ লাগাতে চান

sed -i '$s/$/\n?>/' file

কৌতুক করা উচিত


1
ইনপুটটির শেষ লাইনের স্বেচ্ছাসেবী কারসাজির ক্ষেত্রে এই কাজটি দুর্দান্তভাবে কাজ করে। ধন্যবাদ!
জে টেলর

কমান্ডটির একটি পচনশীল ব্যাখ্যা প্রশংসিত হবে
GGhe


3

'Append (a)' কমান্ড ব্যবহার করুন। উদাহরণস্বরূপ, ফাইলের শেষে দুটি লাইন যুক্ত করা:

sed -i -e '$a\
foo1 bar1\
foo2 bar2' file

2

কোনও ফাইলের একটি নির্দিষ্ট লাইনে বিষয়বস্তুগুলিতে পরিবর্তন এবং পরিবর্তন করার সহজ উপায়। আপনি যদি নির্দিষ্ট লাইন নম্বরে কিছু সন্নিবেশ করতে চান তবে নীচের কমান্ডটি ব্যবহার করা যেতে পারে:

sed -i '2i i have started' sheikh.log

যেখানে 2i- লাইন নম্বর 2 এবং আমি সন্নিবেশ জন্য দাঁড়িয়েছে। শেষ লাইনে $যদি in োকাতে হয় তবে 2 এর জায়গায় ব্যবহার করুন । আমি শুরু করেছি - পাঠ্য প্রবেশ করানো হবে এবং sheikh.logএটি ফাইলের নাম name

আমরা নীচের কমান্ডটি ব্যবহার করে লাইনে পরিবর্তন আনতে পারি

sed -i '2c we have started' sheikh.log

iপরিবর্তিত হয় we

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