وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Bash: به فایل اضافه شود

0 5
زمان لازم برای مطالعه: 3 دقیقه



هنگام کار با Bash، ممکن است مواقعی لازم باشد متنی را به یک فایل اضافه کنید. خوشبختانه راه های متعددی برای انجام این کار وجود دارد. این مقاله برخی از آنها را توضیح می دهد.

برای افزودن متن به یک فایل، باید مجوز نوشتن آن را داشته باشید. در غیر این صورت، یک خطای مجوز رد دریافت خواهید کرد.

با استفاده از عملگر Redirection به یک فایل اضافه کنید (>>)

تغییر مسیر به شما این امکان را می دهد که خروجی یک دستور را بگیرید و آن را به عنوان ورودی به دستور یا فایل دیگری ارسال کنید. را >> عملگر redirection خروجی را به یک فایل داده شده اضافه می کند.

تعدادی دستور وجود دارد که می توانید از آنها استفاده کنید print به خروجی استاندارد متن داده و آن را به فایل هدایت کنید. دو دستور پرکاربرد برای این منظور عبارتند از echo و printf.

برای افزودن متن به فایل، دستوری را اجرا کنید که متن را چاپ می کند و نام فایل را بعد از عملگر تغییر مسیر مشخص کنید:

echo "this is a new line" >> file.txt

هنگام استفاده با -e گزینه، echo
دستور کاراکترهای بک اسلش مانند خط جدید را تفسیر می کند \n:

echo -e "this is a new line \nthis is another new line" >> file.txt

برای تولید خروجی پیچیده تر، می توانید از printf
دستور، که به شما امکان می دهد قالب بندی خروجی را مشخص کنید:

printf "Hello, I'm %s.\n" $USER >> file.txt

راه دیگر برای افزودن متن به فایل استفاده از سند Here (Heredoc) است. این یک نوع تغییر مسیر است که به شما امکان می دهد چندین خط ورودی را به یک فرمان ارسال کنید.

پیشنهاد می‌کنیم بخوانید:  Vmware Workstation 15.0.3

به عنوان مثال، شما می توانید محتوا را به cat
دستور دهید و آن را به یک فایل اضافه کنید:

cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(whoami)
EOF

شما می توانید خروجی هر دستوری را به یک فایل اضافه کنید. در اینجا یک مثال با date
دستور:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

هنگام ضمیمه کردن فایل با استفاده از تغییر مسیر، مراقب باشید که از آن استفاده نکنید > اپراتور برای بازنویسی یک فایل مهم موجود.

با استفاده از tee فرمان

tee یک لینوکس است command-line ابزاری که از ورودی استاندارد می خواند و همزمان در خروجی استاندارد و یک یا چند فایل می نویسد.

به طور پیش فرض، tee دستور فایل مشخص شده را بازنویسی می کند. برای الحاق خروجی به فایل استفاده کنید tee با -a (--append) گزینه:

echo "this is a new line"  | tee -a file.txt

اگر نمی خواهید tee برای نوشتن روی خروجی استاندارد، آن را به آن هدایت کنید /dev/null:

echo "this is a new line"  | tee -a file.txt >/dev/null

مزیت استفاده از tee فرمان بر >> اپراتور آن است tee به شما امکان می دهد همزمان متنی را به چندین فایل اضافه کنید و در فایل های متعلق به سایر کاربران بنویسید. sudo.

برای الحاق متن به فایلی که مجوز نوشتن آن را ندارید، prepend کنید sudo
قبل از tee همانطور که در زیر نشان داده شده است:

echo "this is a new line" | sudo tee -a file.txt

tee خروجی را دریافت می کند echo فرمان را بالا می برد sudo اجازه می دهد و در فایل می نویسد.

پیشنهاد می‌کنیم بخوانید:  روش نصب MySQL روی CentOS 8

برای افزودن متن به بیش از یک فایل، فایل‌ها را به عنوان آرگومان‌هایی برای فایل مشخص کنید tee دستور:

echo "this is a new line"  | tee -a file1.txt file2.txt file3.txt

نتیجه

اگر با لینوکس کار می‌کنید و باید متنی را به فایل موجود اضافه کنید، چند گزینه دارید. یکی از راه ها استفاده از >> عملگر تغییر مسیر، که متن را بدون بازنویسی محتوای موجود به انتهای فایل اضافه می کند. گزینه دیگر استفاده از tee دستوری که نه تنها متن را به فایل اضافه می کند، بلکه آن را نمایش می دهد روی صفحه نمایش در حال اضافه شدن است.

اگر سوال یا بازخوردی دارید، در کامنت بگذارید.

bash
terminal
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-02-08 12:57:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید