Jak pisać do pliku w Bash

How Write File Bash



Jednym z podstawowych zadań, które wykonujemy podczas pracy ze skryptami bash, jest odczytywanie i zapisywanie plików. W tym przewodniku skupimy się na tym, jak czytać pliki w bash i jak je edytować.

Istnieje wiele sposobów odczytu i zapisu pliku w bash. Najprostszym sposobem jest użycie operatorów > i >>.







  • > operator nadpisze istniejące dane
  • >> operator doda dane

Ogólny format używania operatorów przekierowania to:



Dane > Nazwa pliku
Dane >> Nazwa pliku

Rozumiemy procedurę zapisu do pliku na przykładzie:



Jak napisać plik za pomocą operatorów przekierowania

Jak omówiono powyżej, prostym i bezpośrednim podejściem do zapisu do pliku jest użycie operatorów przekierowania. Na przykład, jeśli chcesz zmienić tekst już istniejącego pliku, najpierw utwórz plik tekstowy o nazwie plik testowy.txt i napisz w nim cokolwiek:





Zapisz plik tekstowy.



Wpisz w terminalu poniższe polecenie:

$ echo Nadpisywanie istniejącego tekstu w pliku > testfile.txt

Nadmierne wykręcanie może być ryzykowne; dlatego dobrą praktyką jest włączenie noclobber. Ustawienie noclobber zablokowałoby wszelkie nadpisywanie do dowolnego wychodzącego pliku.

$ set –o noclobber
$ echo Nadpisywanie istniejącego tekstu w pliku > testfile.txt

Ale jeśli chcesz ominąć noclobber, użyj > | operator zamiast > :

$ echo Nadpisywanie istniejącego tekstu w pliku >| plik testowy.txt

Możesz też po prostu wyłączyć noclobber:

$ set + lub noclobber

Ale to polecenie usunie ochronę wszystkich plików.

Powyższe wyjście wskazuje, że istniejący tekst został nadpisany. Teraz użyjmy >> operator:

$ echo Dołączanie tekstu do istniejącego pliku tekstowego >> testfile.txt

wyrzucił nie zawsze jest idealny do użycia, ponieważ nie można go sformatować, dlatego użyj printf zamiast echa, aby sformatować tekst, jak pokazano w następującym poleceniu:

$ printf Witaj To jest nowy plik tekstowy. > newtestfile.txt

Zrozummy tę koncepcję na przykładzie skryptu bash. Otwórz Vima wpisując vim w terminalu. Jeśli nie masz edytora Vima na swoim urządzeniu, zainstaluj go za pomocą:

$ sudo apt zainstaluj vim

Wpisz skrypt:

#! /bin/bash
echo Wpisz swoje imię
przeczytaj imię
echo $nazwa > katalog_danych.txt
echo Podaj swój wiek
przeczytaj wiek
echo $wiek >> katalog_danych.txt
cat data_dir.txt

ten Kot Polecenie służy do tworzenia i edycji plików. Zapisz powyższy skrypt w Vimie, przełączając tryb po naciśnięciu wyjście klucz, a następnie wpisz :w myscript.sh . Otwórz terminal i uruchom kod:

Jak napisać plik za pomocą Heredoc

Jeśli chcesz napisać wiele wierszy, najłatwiejszą metodą jest użycie Heredoc. Tutaj dokument, znany również jako Heredoc, jest wielozadaniowym blokiem kodu. Składnia Heredoc to:

Komenda<<[-] Delimiter
.
tekst/polecenia
.

Ogranicznik

Zamiast separatora można użyć dowolnego ciągu, a - można również użyć do usunięcia wszelkich spacji tabulacji w pliku. Zrozummy to na prostym przykładzie:

#! /bin/bash

Kot<< TEXTFILE
To jest plik tekstowy.
Ten plik jest tworzony przy użyciu heredoc.
PLIK TEKSTOWY

Powyższe polecenie skryptu cat tworzy plik tekstowy o nazwie TEXTFILE i zapisuje tekst do właśnie utworzonego pliku. Teraz zapisz plik pod nazwą myscript.sh . Uruchom terminal i uruchom skrypt.

Jak napisać plik za pomocą polecenia Tee

Inną metodą zapisania pliku jest użycie polecenia Tee. Jako nazwa wskazująca to polecenie pobiera dane wejściowe i zapisuje do pliku oraz jednocześnie wyświetla dane wyjściowe. Domyślnie polecenie Tee nadpisze istniejące dane.

$ echo To jest jakiś tekst | trójnik plik tekstowy.txt

Aby dołączyć użycie –a:

$ echo To kolejny tekst | trójnik –plik tekstowy.txt

Aby napisać wiele wierszy, użyj:

$ echo Dodawanie tekstu do wielu plików | trójnik textfile1.txt textfile2.txt textfile3.txt

Powyższe polecenie utworzy trzy pliki, jeśli nie istnieją, i zapisze tekst do każdego z nich.

Wniosek

Ten przewodnik skupia się na wielu podejściach do zapisu do pliku w bash z przykładami. W skryptach bash istnieje wiele sposobów na zapisanie pliku, ale najprostszym z nich jest użycie operatorów przekierowania >, >>. Aby napisać wiele wierszy, można użyć heredoc, a jeśli chcesz zapisać te same dane w wielu wierszach, bardzo przydatne jest polecenie tee.