Android

Bash: legg til fil

sed: Easily replace strings across files | #7 Practical Bash

sed: Easily replace strings across files | #7 Practical Bash

Innholdsfortegnelse:

Anonim

I Bash er det flere måter å legge tekst til en fil på. Denne artikkelen forklarer noen av dem.

Hvis du vil legge ved tekst til en fil, må du ha skrivetillatelser til den. Ellers får du en tillatelse nektet feil.

Legg til en fil ved hjelp av viderekoblingsoperatøren ( >> )

Omdirigering lar deg fange utdataene fra en kommando og sende den som input til en annen kommando eller fil. >> viderekoblingsoperatøren legger utdataene til en gitt fil.

Det er et antall kommandoer du kan bruke til å skrive ut tekst til standardutdataene og omdirigere den til filen, med echo og printf som de mest brukte.

Hvis du vil legge til tekst til en fil, angir du navnet på filen etter omdirigeringsoperatøren:

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

Når den brukes med -e alternativet, tolker echo kommandoen tegnene som slippes unna, som newline :

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

Hvis du vil produsere mer kompleks utdata, bruker du printf kommandoen som lar deg spesifisere formateringen til utdataene:

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

En annen måte å legge tekst til en fil på er å bruke Here-dokumentet (Heredoc). Det er en type omdirigering som lar deg sende flere linjer med input til en kommando.

For eksempel kan du sende innholdet til kattkommandoen og legge det til en fil:

cat «EOF» file.txt Den nåværende arbeidskatalogen er: $ PWD Du er logget inn som: $ (whoami) EOF

Du kan legge til utdataene fra hvilken som helst kommando til en fil. Her er et eksempel med datokommandoen:

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

Når du legger til en fil ved hjelp av en viderekobling, må du passe på å ikke bruke operatøren > til å overskrive en viktig eksisterende fil.

Legg til en fil ved å bruke kommandoen

tee er et kommandolinjeverktøy i Linux som leser fra standardinngangen og skriver til både standardutgang og en eller flere filer samtidig.

Som standard overskriver tee kommandoen den angitte filen. For å legge utdataene til filen bruker du tee med alternativet -a (- --append ):

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

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

Fordelen med å bruke tee kommandoen over >> -operatøren er at tee lar deg legge til tekst til flere filer samtidig, og å skrive til filer som eies av andre brukere i forbindelse med sudo .

Hvis du vil legge ved tekst til en fil du ikke har skrivetillatelser til, ber du sudo før tee som vist nedenfor:

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

tee mottar utdataene fra echo kommandoen, hever sudo-rettighetene og skriver til filen.

Hvis du vil legge til tekst til mer enn en fil, angir du filene som argumenter til tee kommandoen:

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

Konklusjon

Hvis du vil legge til tekst til en fil i Linux, bruker du >> viderekoblingsoperatøren eller tee kommandoen.

bash terminal