Polecenie dołączenia wiersza do pliku tekstowego bez otwierania edytora

147

Zakładając, że mam wiersz, który chcę dodać do pliku bez otwierania edytora.

Jak mogę dołączyć tę linię

alias list='ls -cl --group-directories-first'

do tego pliku

config.fish
NES
źródło

Odpowiedzi:

237

Możesz dołączyć wiersz tekstu do pliku za pomocą >>operatora:

echo "hello world" >> my_file.txt

lub w twoim przypadku

echo "alias list='ls -cl --group-directories-first'" >> config.fish

Proszę zwrócić uwagę na różne rodzaje cytatów .

Stefano Palazzo
źródło
25
Sam używam echa, ale uważaj, jeśli określisz tylko jeden, >plik zostanie obcięty, a nie dołączony. dla bezpieczniejszego polecenia możesz użyć sed:sed -i '$a hello world' filename
odwróć
12
wyjaśnienie: -izaktualizuje plik (w przeciwnym razie po prostu wydrukuje wynik na standardowe wyjście), $jest wyrażeniem regularnym, które będzie pasować do końca pliku, i adoda następujący tekst do nazwy pliku.
inwersja
echo "hello world" >> my_file.txtnie tworzy nowego ostatniego wiersza za pomocą HW, ale dodaje go do ciągu ostatniego wiersza.
Timo,
Co to jest HW@timo?
7wp,
Może „Hello World” @ 7wp :) To echododaje podział wiersza (czyniąc go wierszem, a nie tylko garstką znaków). Możesz wyłączyć podział linii na końcu za pomocą -n.
Stefano Palazzo
3

Istnieje wiele metod dołączania do pliku bez otwierania edytorów tekstu, szczególnie poprzez wiele dostępnych narzędzi do przetwarzania tekstu w Ubuntu.

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish
Sergiy Kolodyazhnyy
źródło
1

Dodając do odpowiedzi Stefano , możesz także użyć cat:

  • Używając heredoc:

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF

    <<'EOF'oznacza „weź następujące dane wejściowe, aż dojdziesz do prostej linii EOF”. Cytaty oznaczają dosłownie wejście.

  • Lub wprowadzanie linii na standardowe wejście:

    $ cat >> config.fish

    Następnie wklej lub wpisz wiersz, naciśnij, Enteraby przejść do nowego wiersza, a następnie naciśnij Ctrl + D, aby zaznaczyć koniec.

wjandrea
źródło