উত্তর:
কাজটি করার জন্য একটি সহজ:
for i in ./*.txt; do echo 'cat' >> "$i"; done;
এটি বর্তমান ডিরেক্টরিতে সমস্ত টেক্সট ফাইলের একটি তালিকা পাবে, সেগুলি জুড়ে লুপ করবে এবং echo
এগুলিতে বিড়াল হবে (সামগ্রীতে সংযোজন)। আপনি পরিবর্তন করতে পারেন >>
থেকে >
, বিড়াল ফাইল বিষয়বস্তু ওপর দিয়েই লিখতে।
আপনি করতে পারেন এমন আরেকটি জিনিস হ'ল tee
একাধিক ফাইলে একটি স্ট্রিম পুনর্নির্দেশ করতে।
সংযোজন:
echo "cat" | tee -a *.txt
ওভাররাইট করতে:
echo "cat" | tee *.txt
ambiguous redirect
ফাইলগুলি ফাঁকা না sed
থাকলে আপনি লুপিং ছাড়া ব্যবহার করতে পারেন । যোগ করার জন্য cat
শুরুতে:
sed 'i\cat' *.txt
শেষে যুক্ত করতে:
sed 'a\cat' *.txt
দ্বিতীয় লাইনের পরে যুক্ত করতে:
sed '2 a\cat' *.txt
foo
তাদের সাথে লাইনগুলির আগে যুক্ত করতে:
sed '/foo/ i\cat' *.txt
যদিও এটি খালি ফাইলগুলিতে কাজ করে না। এক বাগ ধরণের।
(পরীক্ষার পরে ফাইলগুলিতে আসলে লিখতে আপনার -i
বিকল্পের প্রয়োজন sed -i 'a\cat' *.txt
:)
sed
আমার জাম;)
'i\cat'
স্ল্যাশের পরিবর্তে ব্যাকস্ল্যাশ ব্যবহার করবে কেন ?
'icat'
বা করতে পারেন i cat
। ব্যাকস্ল্যাশ প্রচলিত আমি বিশ্বাস করি। আপনি ফরওয়ার্ডস্ল্যাশ ব্যবহার করতে পারবেন না - এটি আক্ষরিকভাবে
পাইথন পদ্ধতির:
#!/usr/bin/env python
import sys
for i in sys.argv[1:]:
with open(i,'w') as fd:
fd.write("cat\n")
sys
কমান্ড-লাইন আর্গুমেন্টগুলি পুনরাবৃত্তি করতে মডিউল ব্যবহার করেব্যবহারটি হ'ল ./add_cat.py *.txt
, যা .txt
বর্তমান ওয়ার্কিং ডিরেক্টরিতে থাকা সমস্ত ফাইলে কাজ করবে। এর উন্নতিতে কমান্ড-লাইন যুক্তি # 1 টি স্ট্রিং হিসাবে "ক্যাট" হার্ডকডিংয়ের পরিবর্তে লেখার জন্য অন্তর্ভুক্ত থাকতে পারে।
echo "cat" >> *.txt
?