Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam! mam taki problem odnośnie sed'a
Mam wpis który usuwa mi wszystkie cudzysłowia z pliku:
cat test.php | sed 's/"/ /g' > nowy_plik
albo
sed -i 's/"/ /g' test.php
No i OK - usuwa!
Ale w pliku test.php mam mnóstwo takich wpisów:
$BUFFERR = str_replace($przed, $po, "jakies tam "dane' 'dane dalsze" i dalej dane' dane ");
i jak zrobić warunek żeby tylko usuwał cudzysłowia między:
$BUFFERR = str_replace($przed, $po, "
a
");
czyli w tym przypadku z tekstu:
jakies tam "dane' 'dane dalsze" i dalej dane' dane
Był bym bardzo wdzięczny za pomoc!
Offline
tak na szybko:
sed '/$BUFFERR = str_replace/s/"/ /g' plik
usunie w liniach, w ktorych znajduje się "$BUFFERR = str_replace"
jeśli chcesz dokładniej, to trzeba będzie wyrażenie regularne zastosować
Ostatnio edytowany przez azhag (2009-06-23 12:24:10)
Offline
No właśnie chodziło by mi o dokładny warunek:(
żeby usuwał między $BUFFERR = str_replace($przed, $po, "
a
");
czyli jeżeli będzie
$BUFFERR = str_replace($przed, $po, "jakies tam "dane' 'dane dalsze" i dalej dane' dane ");
to wynikiem będzie
$BUFFERR = str_replace($przed, $po, "jakies tam dane' 'dane dalsze i dalej dane' dane ");
Offline
A w perlu albo czymś innym??? Nie da rady??
Offline
azhag@debian:/tmp$ cat plik2 pocz dupa kakak jjs koniec dupa pocz kaka dupa koniec dupa koniec pocz dupa azhag@debian:/tmp$ sed -re 's/(.+)?pocz(.+)?dupa(.+)?koniec/\1pocz\2pupa\3koniec/g' plik2 pocz pupa kakak jjs koniec dupa pocz kaka pupa koniec dupa koniec pocz dupa
Offline
Strony: 1