Добавьте информацию под определенной строкой

Я думаю, что необходимо перенести код в <?php ... ?>. Попробуйте этот файл:

<?php
phpinfo();
?>

По умолчанию содержанием файла PHP является HTML, который отправляется нетронутый в браузер. Маркеры <?php и ?> отметьте запуск и конец кода PHP, который интерпретируется PHP.

3
10.09.2012, 00:19
2 ответа

Используйте R Sed [ead] команда

Можно использовать команду r sed для чтения в файле. Например, для соответствия строке ее числом:

sed '2 r /tmp/file2.txt' /tmp/file1.txt

Или если Вы предпочитаете соответствовать строке ее содержанием:

sed '/^line 2/ r /tmp/file2.txt' /tmp/file1.txt

Это - стандартная команда и не полагается ни на какие расширения GNU, таким образом, она должна работать через различные sed реализации.

Команды выше печатают результат на своем стандартном выводе. Если Вы хотите изменить исходный файл, добавьте -i опция сразу после sed (это будет работать над Linux и Cygwin, но не во всех системах Unix).

3
27.01.2020, 21:20
  • 1
    это просто прочитало file1.txt, но не добавило содержания из file2.txt под строкой, 2 –  iLinux85 09.09.2012, 18:56
  • 2
    и строка содержат специальные символы как этот zend_extension = "/usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so", когда я выполняю команду вывод => sed: выражение № 1-e, символ 21: неизвестная команда: 'u' –  iLinux85 09.09.2012, 19:01
  • 3
    @iLinux85 исходный ответ соответствовал строке своим содержанием. Посмотрите мое редактирование для того, как соответствовать с методической точностью числу. –  Gilles 'SO- stop being evil' 10.09.2012, 00:24

Кроме того, sed можно также сделать это с awk:

awk '1; /line 2/ { while(getline < "file2.txt") print }' file1.txt

Это вставит содержание file2.txt каждый раз line 2 встречен.

1 блок по умолчанию { print $0 }.

Это отправляет его вывод в стандартный вывод, если Вы хотите перезаписать file1.txt сохраните вывод во временный файл и перезапись:

awk '1; /line 2/ { while(getline < "file2.txt") print }' file1.txt > file1.txt.tmp
mv file1.txt.tmp file1.txt

Править

Для фиксированного сопоставления строк == было бы более надежным, например, соответствовать упомянутой строке используют это условное выражение:

awk '1; $0 == "\"zend_extension=/usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so\"" { while(getline < "file2.txt") print }' file1.txt

Обратите внимание, что это должно соответствовать целой строке.

1
27.01.2020, 21:20
  • 1
    вывод: awk: 1;/zend_extension = "/usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so" / {в то время как (getline <"xh.ini") печать} awk: синтаксическая ошибка –  iLinux85 09.09.2012, 20:25
  • 2
    Использовать == вместо этого, посмотрите редактирование. –  Thor 09.09.2012, 21:36
  • 3
    спасибо за редактирование, но u могло установить целую команду, включает редактирование в одну строку? –  iLinux85 09.09.2012, 22:02
  • 4
    Ответ исправлен. –  Thor 09.09.2012, 22:38
  • 5
    я выполняю команду, поскольку она показывает, и я удостоверяюсь строка то же как в файле, но вывод показывает, что file1.txt как команда кошки не добавил содержания после строки, i определенных –  iLinux85 10.09.2012, 00:29

Теги

Похожие вопросы