Відповіді:
Ви можете додати рядок тексту до файлу за допомогою >>
оператора:
echo "hello world" >> my_file.txt
або у вашому випадку
echo "alias list='ls -cl --group-directories-first'" >> config.fish
Зверніть увагу на різні типи цитат .
-i
оновить файл (інакше він просто надрукує результат до stdout), $
буде регулярний вираз, який відповідатиме кінці файлу, та a
додає наступний текст до імені файлу.
echo "hello world" >> my_file.txt
не створює новий останній рядок з HW
, але додає його до рядка останнього рядка.
HW
@timo?
echo
додає розрив рядка (що робить його рядком, а не простою буквою символів). Ви можете вимкнути розрив лінії в кінці за допомогою -n
.
Існує маса методів додавання до файлу без відкриття текстових редакторів, особливо через кілька доступних утилітів для обробки тексту в 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
Додавши відповідь Стефано , ви також можете використовувати cat
:
Використання гередока:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'
означає "прийміть наступне як вхід, поки ви не досягнете справедливої лінії EOF
". Котирування означають сприймати вклад буквально.
Або введення рядка на stdin:
$ cat >> config.fish
Потім вставте або введіть рядок, натисніть, Enterщоб перейти до нового рядка, а потім натисніть Ctrl + D, щоб позначити кінець.
>
тоді файл буде усічений, а не доданий. для більш безпечної команди ви можете використовувати sed:sed -i '$a hello world' filename