{ cat file; echo 'END OF FILE'; } > newFile , это работает также благодаря ш. *. (не sed, но работает и просто)
4
простой echo "Cool Text" >> fileдолжен также сделать свое дело.
Данпе
Ответы:
95
sed -e "\$aTEXTTOEND" это самый простой способ.
Как это устроено
$соответствует последней строке (это нормальный sedадрес; 4aTEXTTOENDвставляется после четвертой строки), aэто команда добавления и TEXTTOENDчто добавить.
Это правда, но вы можете догадаться, что сценарий использования OP заключает в скобки файл с « <php » и « >» и цитирует выделенное содержимое сразу, так что он, вероятно, действительно хочет sedфрагмент.
dmckee
2
Также, если вы сделаете это и не хотите новой строки, используйте echo -n
Vinko Vrsalovic
2
Я не люблю угадывать. Каждый раз, когда я пытаюсь, я ошибаюсь.
4
Еще одна причина, по которой принятый ответ более полезен, заключается в том, чтобы добавить его к этому sudo, что приводит к сбою этого варианта, поскольку echoв нем содержится встроенная команда оболочки, а не исполняемый файл$PATH
Тони Чезаро,
@TonyCesaro: echoвстроенный в систему, но это также исполняемый файл найден в$PATH
Зан Lynx
24
Предполагая, что вы хотите поместить конечный тег php в файлы, тогда
Простым способом писать и вносить изменения в содержимое в определенной строке в файле. Если вы хотите вставить что-либо по определенному номеру строки, используйте следующую команду:
sed -i '2i i have started' sheikh.log
где 2i- строка № 2 и я выступает за вставку. Если вам нужно вставить в последнюю строку, используйте $вместо 2. я начал - текст для вставки и sheikh.logимя файла.
Мы также можем внести изменения в строку, используя команду ниже
Это calвыводится по конвейеру в gnu- sed( вызывается gsedна macOS, установленном через brew.sh ) с расширенным RegEx ( -E) и применены 6 «скриптов» ( -e), а разрывы строк экранированы \для удобства чтения. Сценарии 1 и 2 используются 1i\для «в строке 1 вставить». Сценарии 5 и 6 используются $a\для «в строке <последний>, добавить». Я выровнял текстовые выходные данные по вертикали, чтобы код представлял то, что ожидается в результате. Сценарии 3 и 4 выполняют подстановки (последние применяются только к «line <last>»). Результатом является преобразование вывода команды в допустимый JSON.
Хотя я не голосовал по вашему вопросу, учтите, что у нас уже есть несколько ответов, включая принятый, которые демонстрируют желаемый результат.
Джефф Шаллер
@JeffSchaller Сообщество Stack Exchange - это не форум. Его цель не ограничивается тем, чтобы помочь ОП разблокироваться. Цель состоит в том, чтобы заполнить глобальную базу знаний множеством вариантов, на которые искатели могут наткнуться при поиске ответов. Причина, по которой я назвал свой ответ, состоит в том, чтобы помочь пользователям распознать полезность этого ответа еще до того, как они нажмут на результат Google.
{ cat file; echo 'END OF FILE'; } > newFile
, это работает также благодаря ш. *. (не sed, но работает и просто)echo "Cool Text" >> file
должен также сделать свое дело.Ответы:
sed -e "\$aTEXTTOEND"
это самый простой способ.Как это устроено
$
соответствует последней строке (это нормальныйsed
адрес;4aTEXTTOEND
вставляется после четвертой строки),a
это команда добавления иTEXTTOEND
что добавить.источник
sed -e '$a\NEWLINE\\'
. Замените NEWLINE фактической новой строкой.Не нужно использовать
sed
в этом случае. Как насчетисточник
<php
» и «>
» и цитирует выделенное содержимое сразу, так что он, вероятно, действительно хочетsed
фрагмент.sudo
, что приводит к сбою этого варианта, посколькуecho
в нем содержится встроенная команда оболочки, а не исполняемый файл$PATH
echo
встроенный в систему, но это также исполняемый файл найден в$PATH
Предполагая, что вы хотите поместить конечный тег php в файлы, тогда
должен сделать трюк
источник
Смотрите ваш оригинальный пост для команды all in one sed.
источник
Используйте команду sed 'append (a)'. Например, чтобы добавить две строки в конец файла:
источник
Простым способом писать и вносить изменения в содержимое в определенной строке в файле. Если вы хотите вставить что-либо по определенному номеру строки, используйте следующую команду:
где
2i
- строка № 2 и я выступает за вставку. Если вам нужно вставить в последнюю строку, используйте$
вместо 2. я начал - текст для вставки иsheikh.log
имя файла.Мы также можем внести изменения в строку, используя команду ниже
i
изменено наwe
.источник
В общем и целом
Я бы предположил, что любой, кто искал, как вставить / добавить текст в начало / конец файла, вероятно, также должен знать, как сделать другой.
объяснение
Это
cal
выводится по конвейеру в gnu-sed
( вызываетсяgsed
на macOS, установленном через brew.sh ) с расширенным RegEx (-E
) и применены 6 «скриптов» (-e
), а разрывы строк экранированы\
для удобства чтения. Сценарии 1 и 2 используются1i\
для «в строке 1 вставить». Сценарии 5 и 6 используются$a\
для «в строке <последний>, добавить». Я выровнял текстовые выходные данные по вертикали, чтобы код представлял то, что ожидается в результате. Сценарии 3 и 4 выполняют подстановки (последние применяются только к «line <last>»). Результатом является преобразование вывода команды в допустимый JSON.выход
источник