Linux

Bash Skriv til fil

Bash Skriv til fil

En af de mest almindelige opgaver, når du skriver Bash-scripts eller arbejder på Linux-kommandolinjen, er læsning og skrivning af filer.

Denne artikel forklarer, hvordan man skriver tekst til en fil i Bash ved hjælp af omdirigeringsoperatorerne og tee kommando.

Skrivning til en fil ved hjælp af omdirigeringsoperatører #

I Bash giver omdirigering af output dig mulighed for at fange output fra en kommando og skrive det til en fil.

Det generelle format til omdirigering og skrivning af output til en fil er som følger:

output> filnavn output >> filnavn 

Du skal have skrivetilladelser til filen. Ellers modtager du en tilladelse nægtet fejl.

Her er et simpelt eksempel, der viser, hvordan omdirigere output fra ekko kommando til en fil:

ekko "dette er en linje"> fil.txt

For at forhindre overskrivning af eksisterende filer skal du aktivere indstillingen “noclobber” med sæt indbygget:

sæt -o noclobberekko "dette er en linje"> fil.txt
bash: fil.txt: kan ikke overskrive eksisterende fil 

Det > | giver dig mulighed for at tilsidesætte Bash "noclobber" -indstillingen:

sæt -o noclobberekko "dette er en linje"> | fil.txt

Det >> operatør tilføjer output til slutningen af ​​filen i stedet for at overskrive filen:

ekko "dette er en linje" >> fil.txt

Brug printf kommando til at oprette en kompleks output:

printf "Hej, jeg er% s.\ n "$ USER> fil.txt

Hvis du vil skrive flere linjer til en fil, skal du bruge omdirigering her-dokumentet (Heredoc).

For eksempel kan du videregive indholdet til kat kommando og skriv det til en fil:

kat << EOF > fil.txt Den aktuelle arbejdsmappe er: $ PWD Du er logget ind som $ (whoami) EOF 

For at tilføje linjerne skal du ændre > med >> foran filnavnet:

kat << EOF >> fil.txt Den aktuelle arbejdsmappe er: $ PWD Du er logget ind som $ (whoami) EOF 

Du kan skrive output fra enhver kommando til en fil:

dato + "År:% Y, måned:% m, dag:% d"> fil.txt

Resultatet af dato kommando vil blive skrevet til filen.

Skrivning til en fil ved hjælp af tee Kommando #

Det tee kommandoen læser fra standardindgangen og skriver til både standardoutput og en eller flere filer samtidigt.

ekko "dette er en linje" | tee-fil.txt

Det tee kommandos standardadfærd er at overskrive den angivne fil, den samme som > operatør. For at tilføje output til filen skal du påkalde kommandoen med --en (--Tilføj) mulighed:

ekko "dette er en linje" | tee-en fil.txt

Hvis du ikke vil have tee for at skrive til standardoutputtet kan du omdirigere det til / dev / null:

ekko "dette er en linje" | tee-fil.txt> / dev / null

For at skrive teksten til mere end en fil skal du angive filerne som argumenter for tee kommando:

ekko "dette er en linje" | tee-fil_1.txt-fil_2.txt-fil_3.txt

En anden fordel ved tee kommandoen er, at du kan bruge den sammen med sudo og skriv til filer, der ejes af andre brugere. For at tilføje tekst til en fil, som du ikke har skrivetilladelser til, skal du gå ind sudo Før tee:

ekko "dette er en linje" | sudo tee-fil.txt

Det ekko kommandoutput sendes som input til tee, som hæver sudo-tilladelserne og skriver teksten til filen.

Konklusion #

Brug Linux til at skrive tekst til en fil i Linux > og >> omdirigeringsoperatører eller tee kommando.

Hvis du har spørgsmål eller feedback, er du velkommen til at efterlade en kommentar.

Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...
Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...