Команда для додавання рядка до текстового файлу без відкриття редактора


147

Припускаючи, що у мене є рядок, який я хочу додати у файл, не відкриваючи редактора.

Як я можу додати цей рядок

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

до цього файлу

config.fish

Відповіді:


237

Ви можете додати рядок тексту до файлу за допомогою >>оператора:

echo "hello world" >> my_file.txt

або у вашому випадку

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

Зверніть увагу на різні типи цитат .


25
Я використовую echo сам, але будьте обережні, якщо ви вкажете лише один, >тоді файл буде усічений, а не доданий. для більш безпечної команди ви можете використовувати sed:sed -i '$a hello world' filename
інвертувати

12
пояснення: -iоновить файл (інакше він просто надрукує результат до stdout), $буде регулярний вираз, який відповідатиме кінці файлу, та aдодає наступний текст до імені файлу.
інвертувати

echo "hello world" >> my_file.txtне створює новий останній рядок з HW, але додає його до рядка останнього рядка.
Тимо

Що таке HW@timo?
7wp

Можливо, "Hello World" @ 7wp :) Саме це echoдодає розрив рядка (що робить його рядком, а не простою буквою символів). Ви можете вимкнути розрив лінії в кінці за допомогою -n.
Стефано Палацо

3

Існує маса методів додавання до файлу без відкриття текстових редакторів, особливо через кілька доступних утилітів для обробки тексту в 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

1

Додавши відповідь Стефано , ви також можете використовувати cat:

  • Використання гередока:

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

    <<'EOF'означає "прийміть наступне як вхід, поки ви не досягнете справедливої ​​лінії EOF". Котирування означають сприймати вклад буквально.

  • Або введення рядка на stdin:

    $ cat >> config.fish

    Потім вставте або введіть рядок, натисніть, Enterщоб перейти до нового рядка, а потім натисніть Ctrl + D, щоб позначити кінець.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.