A Bash parancsfájlok írásakor vagy a Linux parancssorán végzett munka során az egyik leggyakoribb feladat a fájlok olvasása és írása.
Ez a cikk elmagyarázza, hogyan kell szöveget írni egy fájlba a Bash-ban az átirányítási operátorok és segítségével tee
parancs.
Írás fájlba átirányítási operátorokkal #
A Bash-ben a kimenet átirányítása lehetővé teszi, hogy rögzítse a parancs kimenetét és fájlba írja.
A kimenet fájlba történő átirányításának és írásának általános formátuma a következő:
output> fájlnév output >> fájlnév
- A
>
átirányítási operátor írja a kimenetet egy adott fájlba. Ha a fájl létezik, akkor nulla hosszúságúra csonkolja. Ellenkező esetben a fájl létrejön. Legyen különösen óvatos ennek az operátornak a használatakor, mivel felülírhatja egy fontos fájlt. - A
>>
átirányítási operátor hozzáfűzi a kimenetet egy adott fájlhoz. A fájl akkor jön létre, ha nem létezik.
Írási engedélyekkel kell rendelkeznie a fájlhoz. Ellenkező esetben az engedély megtagadása hibát fog kapni.
Itt van egy egyszerű példa, amely bemutatja, hogyan irányítja át a visszhang
parancs fájlba:
echo "this is a line"> fájl.txt
A meglévő fájlok felülírásának megakadályozása érdekében engedélyezze a „noclobber” opciót a készlet
beépített:
set -o noclobber
echo "this is a line"> fájl.txt
bash: fájl.txt: nem írja felül a létező fájlt
A > |
operátor lehetővé teszi a Bash „noclobber” opció felülírását:
set -o noclobber
visszhang "ez egy vonal"> | fájl.txt
A >>
Az operátor a kimenetet a fájl végéhez fűzi, a fájl felülírása helyett:
echo "ez egy sor" >> fájl.txt
Használja a printf
parancs komplex kimenet létrehozásához:
printf "Hello,% s vagyok.\ n "$ USER> fájl.txt
Ha több sort szeretne írni egy fájlba, használja a Here dokumentum (Heredoc) átirányítást.
Például átadhatja a tartalmat a macska
parancsot, és írja be egy fájlba:
macska << EOF > fájl.txt A jelenlegi munkakönyvtár: $ PWD $ $ (whoami) EOF néven van bejelentkezve
A sorok hozzáfűzéséhez módosítsa >
val vel >>
a fájl neve előtt:
macska << EOF >> fájl.txt A jelenlegi munkakönyvtár: $ PWD $ $ (whoami) EOF néven van bejelentkezve
Bármelyik parancs kimenetét fájlba írhatja:
dátum + "Év:% Y, Hónap:% m, Nap:% d"> fájl.txt
A kimenet dátum
parancs be lesz írva a fájlba.
Írás fájlba a tee
Parancs #
A tee
a parancs beolvassa a standard bemenetet, és egyszerre ír mind a standard kimenetbe, mind egy vagy több fájlba.
visszhang "ez egy vonal" | tee fájl.txt
A tee
A parancs alapértelmezett viselkedése a megadott fájl felülírása, ugyanaz, mint a >
operátor. A kimenet fájlhoz csatolásához hívja meg a parancsot a -a
(--mellékel
) választási lehetőség:
visszhang "ez egy vonal" | tee -a fájl.txt
Ha nem akarja a tee
hogy a standard kimenetre írjon, átirányíthatja / dev / null
:
visszhang "ez egy vonal" | tee fájl.txt> / dev / null
Ha a szöveget több fájlba szeretné írni, adja meg a fájlokat argumentumként a tee
parancs:
visszhang "ez egy vonal" | tee fájl_1.txt file_2.txt fájl_3.txt
További előnye a tee
parancs az, hogy a sudo
és írjon más felhasználók tulajdonában lévő fájlokba. Szöveg hozzáfűzése egy fájlhoz, amelyhez nincs írási engedélye, tegye előre sudo
előtt tee
:
visszhang "ez egy vonal" | sudo tee fájl.txt
A visszhang
a parancs kimenetét bemenetként továbbítja a tee
, amely megemeli a sudo jogosultságokat és a szöveget a fájlba írja.
Következtetés
Linux alatt, ha szöveget akar írni egy fájlba, használja a >
és >>
átirányítási operátorok vagy tee
parancs.
Ha bármilyen kérdése vagy visszajelzése van, nyugodtan írjon megjegyzést.