Для меня, лично, это - то, что Bill сказал в ссылке @philfr:
В системе разработки или песочнице, имея / выбирают каталог, куда можно просто бросить вещи и видеть, работают ли они, имеет большой смысл. Я знаю, что не собираюсь проходить усилие упаковочных вещей сам для испытания их. Если приложение не удается, Вы можете просто комната,/opt/mytestapp каталог и то приложение являются историей. Упаковка может иметь смысл при выполнении большого развертывания (существуют времена, когда я действительно упаковываю приложения), но много времен, хорошо бросить материал в/, выбирают.
К сожалению, большинство make install
сценарии продвигают файлы в /usr/local
вместо того, чтобы просто делать символьную ссылку там :-/
sed -e "\$aTEXTTOEND"
самый простой путь.
$
соответствует последней строке (это - нормальное sed
адрес; 4aTEXTTOEND
вставил бы после четвертой строки), a
добавлять команда, и TEXTTOEND
то, что добавить.
Никакая потребность использовать sed
в этом случае. Как насчет
echo "<?php" >> file
<php
"и">
", и заключающее в кавычки выбранное содержание все в одном идет, таким образом, он, вероятно, действительно хочет a sed
фрагмент.
– dmckee --- ex-moderator kitten
06.09.2009, 18:12
sudo
, который заставляет это изменение перестать работать с тех пор echo
встроенная команда оболочки, а не исполняемый файл, найденный в $PATH
– Tony Cesaro
28.10.2014, 17:33
echo
встроенное, но также исполняемый файл, найденный в $PATH
– Zan Lynx
28.12.2016, 14:51
Принятие Вас хочет поместить конечный тег PHP в файлы, затем
sed -i '$s/$/\n?>/' file
должен добиться цели
См. свое исходное сообщение для всех в одной команде sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Используйте sed, 'добавляют (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
выходные данные, передаваемые в GNUsed
(под названием gsed
в macOS, установленной через brew.sh , и просто sed
в установках GNU )с расширенным RegEx(-E
)и применено 6 «скриптов» (-e
), а разрывы строк экранированы с помощью \
для удобства чтения.
1i\
для «вставки в строке 1». $a\
для «в строке <последняя> добавить». Я выровнял текстовые выходные данные по вертикали, чтобы код представлял ожидаемый результат. В результате выходные данные команды преобразуются в действительный 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 ",
" "
]
}
Без возврата строки/каретки добавление текста hello
в конец строки и редактирование файла на месте без вывода на терминал
sed -i '$s/$/hello/' file
Эквивалентом вашего sed -i '1s/^/<start</' file
будет:
sed -i '$s/$/>end>/' file
Это добавит текст >end>
в последнюю строку (без новой строки )файла. Конечно, в этом случае (как и в вашем примере также )нужно, чтобы файл содержал хотя бы одну строку (непустую ).
Использование двойных кавычек (, как в выбранном ответе ), не является хорошей идеей, так как тогда оболочка будет пытаться обработать каждое $
в строке. Команда преобразуется в:
sed -i "\$s/\$/>end>/" file
При использованииa
(append, end )илиi
(insert, start )также будет вставлена новая строка, потребуются разные вызовы в BSD и GNU, и по-прежнему потребуется не -пустой файл.
Для GNU:
$ sed '1i<start<' file
$ sed '$a>end>' file
Для BSD:
$ sed '1i\
<start<' file
$ sed '$a\
>end>' file
Или, в оболочках, которые это позволяют (C -string):
$ sed $'1i\\\n<start<' file
$ sed $'$a\\\n>end>' file
Конечно, нет ничего проще:
echo '>end>' >> file
который работает и с пустыми файлами.