l'exit-code di sed

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 565
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

l'exit-code di sed

Messaggio da london3 »

di sollito uso

$ sed s/"$text1"/"$text2"/g "$file1" > "$file2"

ma il problema è che se $file1 non contiene il testo da sostituire, non viene generata nessuna segnalazione...

c'è un modo per dire a sed di avvisare se il testo non fosse presente?
Ultima modifica di london3 il lunedì 31 marzo 2014, 13:18, modificato 1 volta in totale.
Computer: Lenovo ThinkPad L480
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: sostituire testo all'interno di file

Messaggio da vaeVictis »

Usando l'exit code, in modo un po' complesso.
Prova a dare una letta a cosa ti dicono questi link

p.s.:
A margine, il titolo della discussione è inappropriato.
Se ne metti uno più pertinente ("exit code di sed" o una cosa del genere) attiri meglio l'attenzione.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 565
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: sostituire testo all'interno di file

Messaggio da london3 »

bah i link... ci sono dei frammenti di codice mostruosi.
L'unica soluzione decente che ho trovato

Codice: Seleziona tutto

grep testo file > /dev/null

if [ $? -eq 0 ]; then
    sed...
else
  echo non trovato
fi
Purtroppo il file viene letto due volte: una volta da grep e una volta da sed, e le prestazioni calano inevitabilmente...
Ma una bella opzione --throw-not-macth non la potevano implementare?
Ultima modifica di london3 il lunedì 31 marzo 2014, 14:31, modificato 1 volta in totale.
Computer: Lenovo ThinkPad L480
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: sostituire testo all'interno di file

Messaggio da vaeVictis »

Quello passa la casa.
L'unica soluzione che ho trovato

Codice: Seleziona tutto

grep testo file > /dev/null

if [ $? -eq 0 ]; then
    sed...
else
  echo non trovato
fi
Purtroppo il file viene letto due volte: una volta da grep e una volta da sed, e le prestazioni calano inevitabilmente...
La soluzione con grep è abbastanza ovvia, pertanto l'avevo proprio "saltata".
L'unica cosa che posso "suggerirti" è di usare il parametro -m per fermare la lettura appena trova il primo match.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 565
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: l'exit-code di sed

Messaggio da london3 »

cmq per sed una bella opzione --throw-not-macth la potevano implementare benissimo
Computer: Lenovo ThinkPad L480
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: l'exit-code di sed

Messaggio da vaeVictis »

Segnalalo nelle sedi opportune.
:)
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti