একটি ফোল্ডারে প্রতিটি txt ফাইলে একটি শব্দ লেখা


10

আমি কিভাবে একটি ফোল্ডারে প্রতিটি .txt ফাইলে "বিড়াল" শব্দটি লিখতে পারি?

উত্তর:


20

কাজটি করার জন্য একটি সহজ:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

এটি বর্তমান ডিরেক্টরিতে সমস্ত টেক্সট ফাইলের একটি তালিকা পাবে, সেগুলি জুড়ে লুপ করবে এবং echoএগুলিতে বিড়াল হবে (সামগ্রীতে সংযোজন)। আপনি পরিবর্তন করতে পারেন >>থেকে >, বিড়াল ফাইল বিষয়বস্তু ওপর দিয়েই লিখতে।

আপনি করতে পারেন এমন আরেকটি জিনিস হ'ল teeএকাধিক ফাইলে একটি স্ট্রিম পুনর্নির্দেশ করতে।

সংযোজন:

echo "cat" | tee -a *.txt

ওভাররাইট করতে:

echo "cat" | tee *.txt

কোনটি ব্যবহার করতে চান echo "cat" >> *.txt?
hytromo

4
@ হ্যাকারম্যানিয়া যা দিয়ে ব্যর্থ হওয়া উচিতambiguous redirect
জান্না

13

ফাইলগুলি ফাঁকা না 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'স্ল্যাশের পরিবর্তে ব্যাকস্ল্যাশ ব্যবহার করবে কেন ?
ফুক্লিভি

@ LưuVĩnhPhúc ব্যাকস্ল্যাশটি আসলে alচ্ছিক, আপনি এটিও রাখতে পারেন 'icat'বা করতে পারেন i cat। ব্যাকস্ল্যাশ প্রচলিত আমি বিশ্বাস করি। আপনি ফরওয়ার্ডস্ল্যাশ ব্যবহার করতে পারবেন না - এটি আক্ষরিকভাবে
sertedোকানো

4

পাইথন পদ্ধতির:

#!/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 টি স্ট্রিং হিসাবে "ক্যাট" হার্ডকডিংয়ের পরিবর্তে লেখার জন্য অন্তর্ভুক্ত থাকতে পারে।

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