আমার কাছে একটি বাহ্যিক প্রোগ্রাম রয়েছে যা একটি আউটপুট ফাইল তৈরি করে (লার্জিশ, 20 কে লাইন সম্ভব)।
আমার বিদ্যমান লাইন 1 এবং লাইন 2 এর মধ্যে একটি নতুন লাইন সন্নিবেশ করা দরকার I've এটা কর.
আমার কাছে একটি বাহ্যিক প্রোগ্রাম রয়েছে যা একটি আউটপুট ফাইল তৈরি করে (লার্জিশ, 20 কে লাইন সম্ভব)।
আমার বিদ্যমান লাইন 1 এবং লাইন 2 এর মধ্যে একটি নতুন লাইন সন্নিবেশ করা দরকার I've এটা কর.
উত্তর:
awk 'NR==1{print; print "new line"} NR!=1'
আপনার নির্দিষ্ট ক্ষেত্রে, এটি সহজ হতে হবে:
sed '1 { P ; x }' your-file
ব্যাখ্যা: 1 লাইনে নিম্নলিখিতটি করুন
তারপরে, লাইনটি (এখন খালি) আবার চক্রের অংশ হিসাবে মুদ্রিত হয়।
আপনি যদি নতুন লাইন চরিত্রের পরিবর্তে একটি নতুন লাইন যুক্ত করতে চান (যা আমি প্রথমে বুঝতে পেরেছিলাম) তবে কেবলমাত্র কমান্ড (অ্যাপেন্ড) ব্যবহার করুন:seda\
sed '1 a\
appended line' your-file
অথবা এমনকি
sed '1 aappended line' your-file
এটি appended lineলাইন 1 এর পরে " " সংযোজন করে ।
sed -i '1 a\\' fileশুধু একটি নতুন লাইন জন্য।
'1 aapended line'উদাহরণ হিসাবে জিএনইউজম ।
আমার ধারণা এই sedপদ্ধতিটি হবে:
sed '2 i whatever_line_of_text_you_wanted_to_INSERT' filename.txt
এটি পাঠ্যটি ফাইলের দ্বিতীয় লাইনে পাবে এবং তারপরে ফাইলের সাথে প্রকৃত দ্বিতীয় লাইনটি তৃতীয় হয়ে যাবে।
নোট করুন , অ্যাপেন্ড মোডটি ব্যবহার করে যদি এটিটি করা হয় তবে এটি প্রথম লাইনটি ব্যবহার করতে হবে, যেহেতু পরিশিষ্টটি লাইন নম্বরটি উল্লেখ করার পরে ঘটবে।
sed '1 a whatever_line_of_text_you_wanted_to_INSERT' filename.txt
sed ':a;N;$!ba;s/\n/\n\n\n/' yourBigFile
এটি আপনার পক্ষে কাজ করতে পারে:
sed 1G file
আপনি যদি somethingনতুন লাইনের পরে সন্নিবেশ করতে চান :
sed '1{G;s/$/something/}' file
অথবা আপনি যদি পরিচালনা করেন \n:
sed '1s/$/\nsomething/' file
অবশ্যই aআরও সহজ:
sed '1a something' file
\nএক লাইনে একটি নতুন লাইন যুক্ত!
আমি সাধারণত এটির edজন্য ব্যবহার করি :
(echo 1a; echo 'Line to insert'; echo .; echo w) | ed - filename
একটি sedসমাধানের মতো, তবে পলায়ন করা নিউলাইনগুলির গোলমাল ছাড়াই।
echo'র, বিশেষ করে অধীনে bash: ed - filename <<< $'1a\nLine to insert\n.\nw'।
dash, যা বহু সিস্টেমে রয়েছে /bin/sh।
echo এর"। মোচন সব echo 'র প্রকৃতপক্ষে bashশুধুমাত্র বৈশিষ্ট্য কিন্তু হ্রাস echo4 থেকে 1 কাজ থেকে গণনা dashএবং kshখুব: echo '1a\nLine to insert\n.\nw' | ed - filename।
printf %s\\n , যা আপনি প্রদত্ত প্রতিটি আরগের পরে একটি নতুন লাইন রাখে এবং আপনি যে রেখাটি সন্নিবেশ করতে চান তাতে এমবেড করা বিশেষ অক্ষরগুলিকে স্ক্রু করে না। এছাড়াও, কেন পাওয়া যায় edযখন ব্যবহার ex?
পাইথন সলিউশন
python -c "import sys; lines = sys.stdin.readlines(); lines.insert(1,'New Line\n'); print ''.join(lines).strip()" < input.txt
আমি এর জন্য অজগর ব্যবহার করব
import fileinput
for linenum,line in enumerate(fileinput,FileInput("file",inplace=1)):
if linenum ==1:
print ""
print line.rstrip()
else:
print line.rstrip()`
সহজতম পদ্ধতি ব্যবহার করে printfএবং ex:
printf '%s\n' 1a 'my line to insert' . x | ex file
1aঅর্থ "প্রথম লাইনের পরে সংযোজন"; .সংযোজন শেষ হয়; xঅর্থ সংরক্ষণ এবং প্রস্থান করা।
উপরের উত্তরগুলির মধ্যে কোনওটিতেই মূল ফাইলটির পরিবর্তনগুলি কীভাবে সংরক্ষণ করা যায় তা উল্লেখ করা হয়নি, যা আমি ভাবি যে ওপি কী চেয়েছিল।
পৃষ্ঠায় ক্যাম করার সময় এটি অবশ্যই আমার প্রয়োজন ছিল।
সুতরাং ধরে নেওয়া আপনার ফাইল বলা হয় output.txt
sed -i '1 a This is the second line' output.txt
আমার বিশেষ ব্যবহারের ক্ষেত্রে হ'ল একটি জুনিট এক্সএমএল ফাইলে স্বয়ংক্রিয়ভাবে একটি এক্সএসএল স্টাইলশিট ঘোষণা to
sed -i '1 a <?xml-stylesheet type="text/xsl" href="junit-html.xsl"?>' junit.xml
awk 'NR==2 {print "new line"} 1'