Відповіді:
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, але працює і просто)