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

147

Предполагая, что у меня есть строка, которую я хочу добавить в файл, не открывая редактор.

Как я могу добавить эту строку

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

в этот файл

config.fish
NES
источник

Ответы:

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?
7
Может быть "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:

  • Используя heredoc:

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

    <<'EOF'означает «принять следующее как ввод, пока не достигнете строки, которая является просто EOF». Кавычки означают буквальное восприятие ввода.

  • Или ввод строки на стандартный ввод:

    $ cat >> config.fish

    Затем вставьте или введите строку, нажмите, Enterчтобы перейти к новой строке, затем нажмите Ctrl + D, чтобы отметить конец.

wjandrea
источник