Přihlásit
: [1]
   |   
: Dotaz k sedu  ( 2592 )
biginer


« : May 14, 2010, 11:05:47 »

Používám sed ve smyčce na nahrazení řetězců v poli. Nastává mi taková situace, že např. chci provést jednu záměnu, ale musím projít celé pole, které má 23 prvků. Sed mi vždy vrací buď nezměněný řetězec nebo změněný řetězec. Chci se zeptat, jestli je možné nějak zjistit, zda sed nalezl co hledal? Tedy zda proběhla záměna. Mám totiž pocit, že ten sed zapisuje změny do souboru i když žádná záměna neproběhla a to je neužitečné.

Jen pro představu kód vypadá asi takto:

:
n=-1;
while [[ $n -lt ${#content[@]} ]]; do
    n=$((n+1));
    sed -n "1h;1! H;$ {;g;s@$original_block@$content_block@g;p;}" /boot/grub/test.lst
Ivan Bibr
Administrator
Hero Member
*****

Karma: 52
: 3 298



« #1 : May 15, 2010, 01:35:31 »

Mám totiž pocit, že ten sed zapisuje změny do souboru i když žádná záměna neproběhla a to je neužitečné.

To určitě ne - sed nedělá nic, co nemusí...

: [1]
   |   
 
: