আমার কাছে একটি বাহ্যিক প্রোগ্রাম রয়েছে যা একটি আউটপুট ফাইল তৈরি করে (লার্জিশ, 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 লাইনে নিম্নলিখিতটি করুন
তারপরে, লাইনটি (এখন খালি) আবার চক্রের অংশ হিসাবে মুদ্রিত হয়।
আপনি যদি নতুন লাইন চরিত্রের পরিবর্তে একটি নতুন লাইন যুক্ত করতে চান (যা আমি প্রথমে বুঝতে পেরেছিলাম) তবে কেবলমাত্র কমান্ড (অ্যাপেন্ড) ব্যবহার করুন:sed
a\
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
শুধুমাত্র বৈশিষ্ট্য কিন্তু হ্রাস echo
4 থেকে 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'