উত্তর:
কোনও ফাইলে আউটপুট নির্দেশ করার >>
পরিবর্তে ব্যবহার >
করুন:
your_command >> file_to_append_to
যদি file_to_append_to
বিদ্যমান নয়, এটা তৈরি করা হবে।
উদাহরণ:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
করার append
একটি ফাইল ব্যবহার >>
echo "hello world" >> read.txt
cat read.txt
echo "hello siva" >> read.txt
cat read.txt
তারপরে আউটপুট হওয়া উচিত
hello world # from 1st echo command
hello world # from 2nd echo command
hello siva
করার overwrite
একটি ফাইল ব্যবহার >
echo "hello tom" > read.txt
cat read.txt
তারপর আউট পুট হয়
hello tom
আপনি >> অপারেটর ব্যবহার করতে পারেন। এটি একটি পাঠ্য ফাইলের শেষে একটি কমান্ড থেকে ডেটা যুক্ত করবে।
এই চেষ্টা চালানোর চেষ্টা করুন:
echo "Hi this is a test" >> textfile.txt
এটি কয়েক বার করুন এবং তারপরে চালান:
cat textfile.txt
আপনি দেখবেন আপনার পাঠ্যটি টেক্সটফিল.টিএসটিএস ফাইলে বেশ কয়েকবার সংযুক্ত করা হয়েছে।
command >> file_to_append_to
একটি ফাইল সংযোজন ব্যবহার করুন।
উদাহরণ স্বরূপ echo "Hello" >> testFile.txt
সতর্কতা: আপনি যদি কেবল একটি একক ব্যবহার করেন তবে আপনি >
ফাইলের বিষয়বস্তুগুলিকে ওভাররাইট করতে পারবেন। নিশ্চিত করার জন্য যে কখনও ঘটবে না, আপনি যোগ করতে পারেন set -o noclobber
আপনার টু .bashrc
।
এটি নিশ্চিত করে যে আপনি যদি দুর্ঘটনাক্রমে command > file_to_append_to
কোনও বিদ্যমান ফাইলটিতে টাইপ করেন তবে এটি আপনাকে সতর্ক করবে যে ফাইলটি ইতিমধ্যে বিদ্যমান। নমুনা ত্রুটি বার্তা:file exists: testFile.txt
সুতরাং, আপনি যখন >
এটি ব্যবহার করবেন কেবল তখনই আপনাকে একটি নতুন ফাইল তৈরি করার অনুমতি দেবে, বিদ্যমান ফাইলটি ওভাররাইট না করে।
>>
কোনও ফাইলে পাঠ্য সংযোজন করতে অপারেটরটি ব্যবহার করুন।
ব্যবহার টী বর্ণের নাম বিকল্প -a (--append) আপনি একবার এবং ব্যবহার করা একাধিক ফাইল সংযুক্ত করতে পারবেন উবুন্টু (খুব দরকারী যখন সংরক্ষিত ফাইলগুলিতে সংযোজন)। তদ্ব্যতীত, যদি আপনার বাশ ছাড়াও অন্যান্য শেলগুলি ব্যবহার করার দরকার হয় তবে এটি আকর্ষণীয় যেহেতু সমস্ত শেলগুলি> এবং >> অপারেটরকে সমর্থন করে না
echo "hello world" | sudo tee -a output.txt
এই থ্রেড টি সম্পর্কে ভাল উত্তর আছে
পুরো প্রশ্নের জন্য:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
এটি 720 টি লাইন (30 * 24) o.txt এ যুক্ত করবে এবং তার পরে বর্তমান তারিখের উপর ভিত্তি করে ফাইলটির নাম পরিবর্তন করবে।
উপরের ক্রোন দিয়ে প্রতি ঘন্টা বা চালান, বা
while :
do
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
sleep 3600
done
আমি প্রতিধ্বনির পরিবর্তে প্রিন্টফ ব্যবহার করব কারণ এটি আরও নির্ভরযোগ্য এবং \n
সঠিকভাবে নতুন লাইনের মতো ফর্ম্যাট করার প্রক্রিয়া ।
এই উদাহরণটি পূর্ববর্তী উদাহরণগুলিতে প্রতিধ্বনির অনুরূপ একটি আউটপুট উত্পাদন করে:
printf "hello world" >> read.txt
cat read.txt
hello world
তবে আপনি যদি এই উদাহরণে প্রতিধ্বনির সাথে প্রিন্টফকে প্রতিস্থাপন করেন তবে প্রতিধ্বনি \ n কে স্ট্রিং হিসাবে বিবেচনা করবে, সুতরাং উদ্দেশ্যটিকে উপেক্ষা করবে
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
উদাহরণস্বরূপ আপনার ফাইলের মধ্যে রয়েছে:
1. mangesh@001:~$ cat output.txt
1
2
EOF
আপনি যদি ফাইলের শেষে সংযোজন করতে চান তবে ----> 'টেক্সট' >> 'ফাইলের নাম' এর মধ্যে ফাঁকা স্থানগুলি মনে রাখবেন
2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt
1
2
EOF
somthing to append
এবং ফাইলের বিষয়বস্তু ওভাররাইট করতে:
3. mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
somthing new to write
cat
হল ... সম্পূর্ণরূপে অসচেতন। (এটি খালি কারণ আপনি কেবল একটি ফাইলের কাছে স্ট্যান্ডার্ড আউটপুট পুনঃনির্দেশ করেছেন।)
echo
স্ট্রিং থেকে নতুনলাইনগুলি সরিয়ে দেয়। আপনি কীভাবে কোনও ফাইলকে যুক্ত করতে পারেন যাতে একটি নতুন স্ট্রিং থাকে?