از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash: به فایل اضافه شود
سرفصلهای مطلب
هنگام کار با 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) است. این یک نوع تغییر مسیر است که به شما امکان می دهد چندین خط ورودی را به یک فرمان ارسال کنید.
به عنوان مثال، شما می توانید محتوا را به 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 اجازه می دهد و در فایل می نویسد.
برای افزودن متن به بیش از یک فایل، فایلها را به عنوان آرگومانهایی برای فایل مشخص کنید tee
دستور:
echo "this is a new line" | tee -a file1.txt file2.txt file3.txt
نتیجه
اگر با لینوکس کار میکنید و باید متنی را به فایل موجود اضافه کنید، چند گزینه دارید. یکی از راه ها استفاده از >>
عملگر تغییر مسیر، که متن را بدون بازنویسی محتوای موجود به انتهای فایل اضافه می کند. گزینه دیگر استفاده از tee
دستوری که نه تنها متن را به فایل اضافه می کند، بلکه آن را نمایش می دهد روی صفحه نمایش در حال اضافه شدن است.
اگر سوال یا بازخوردی دارید، در کامنت بگذارید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-02-08 12:57:03