Відповіді:
sed -e "\$aTEXTTOEND"
є найпростішим способом.
$
відповідає останньому рядку (це звичайна sed
адреса; 4aTEXTTOEND
буде вставлена після четвертого рядка), a
є командою додавання і TEXTTOEND
є чим додати.
sed -e '$a\NEWLINE\\'
. Замініть NEWLINE фактичним новим рядком.
У sed
цьому випадку використовувати не потрібно . Як щодо
echo "<?php" >> file
<php
" і " >
", і цитування вибраного вмісту за один раз, тому він, мабуть, дійсно хоче sed
фрагмент.
sudo
, що призводить до невдачі цієї зміни, оскільки echo
це вбудована команда оболонки, а не виконуваний файл, знайдений у$PATH
echo
це вбудований, але також виконуваний файл, знайдений у$PATH
Тоді припустимо, що ви хочете помістити кінцевий тег php у файли
sed -i '$s/$/\n?>/' file
повинен зробити трюк
Дивіться свою оригінальну публікацію для всіх в одній команді sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Використовуйте команду sed 'append (a)'. Наприклад, додати два рядки в кінці файлу:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
Простим способом записати та внести зміни до вмісту в певний рядок у файлі. Якщо ви хочете вставити що-небудь під певний номер рядка, тоді можна використовувати команду нижче:
sed -i '2i i have started' sheikh.log
де 2i
- рядок №2 і i означає вставку. Якщо вам потрібно вставити останній рядок, тоді використовуйте $
замість 2. я почав - текст, який потрібно вставити, і sheikh.log
є ім'ям файлу.
Ми також можемо внести зміни в рядку, скориставшись командою нижче
sed -i '2c we have started' sheikh.log
i
змінено на we
.
Я б припустив, що кожен, хто шукав, як вставити / додати текст до початку / кінця файлу, ймовірно, також повинен знати, як робити і інші.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Цей cal
висновок передається на gnu- sed
(викликається gsed
на macOS, встановленому через brew.sh ) з розширеним RegEx ( -E
) та застосованими 6 "скриптами" ( -e
) та розривами рядків, \
для яких можна зрозуміти. Сценарії 1 та 2 використовують 1i\
для "у рядку 1, вставити". Сценарії 5 та 6 використовують $a\
для "у рядку <остання>, додати". Я вертикально вирівнював текстові виходи, щоб код відображав те, що очікується в результаті. Сценарії 3 та 4 роблять підстановки (останні застосовуються лише до "рядка <остання>"). Результатом є перетворення командного виводу в допустимий JSON.
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFile
, це також працює завдяки ш. *. (не sed, але працює і просто)