Come faccio a dirgli che non deve fare la sostituzione se la stringa incomincia con un numero?
Codice: Seleziona tutto
perl -pe "s/'s(?=(((?"'!'"\)).)*\()|[^\(\)]*$)/XXs/gi"
Codice: Seleziona tutto
perl -pe "s/'s(?=(((?"'!'"\)).)*\()|[^\(\)]*$)/XXs/gi"
Codice: Seleziona tutto
/path/kisn file|testo stringaDaSostituire nuovaStringa
Codice: Seleziona tutto
txt='1 questa riga non è buona
invece questa è buona
123 questa non è buona, inizia con un numero'
Codice: Seleziona tutto
grep -P '^[^0-9]+.*questa' <<< "$txt"
Codice: Seleziona tutto
perl -pe "s/^[^0-9]+questa/quest'altra/" <<< "$txt"
Codice: Seleziona tutto
8-) txt='1 questa riga non è buona
> invece questa è buona
> 123 questa non è buona, inizia con un numero'
8-) grep -P '^[^0-9]+.*questa' <<< "$txt"
invece questa è buona
8-) perl -pe "s/^[^0-9]+questa/quest'altra/" <<< "$txt"
1 questa riga non è buona
quest'altra è buona
123 questa non è buona, inizia con un numero
8-)
Codice: Seleziona tutto
$ testo="duemele mele2 mele 2mele
pere
altre due2mele"
$
$ perl -pe s/'(?<!\b\d)mele'/kiwi/g <<< "$testo"
duekiwi kiwi2 kiwi 2mele
pere
altre due2kiwi
$
DoctorStrange ha scritto: ↑lunedì 15 aprile 2024, 10:00Ma non sarebbe piu semplice creare la regex, in modo che trovi tutte le stringhe che cominciano con il numero o che comunque rispondano al criterio inverso, e poi negare globalmente il risultao ottenuto?
Oppure, in alternativa, trovi tutte le stringhe che NON rispondono al tuo criterio e poi, con una sottrazione dell'insieme di partenza, ciò che resta sarà sicuramente ciò che cercavi fin dall'inizio.
Codice: Seleziona tutto
perl -X -pe 's/(?<!\b\d{1,9})mele/kiwi/g' <<< "$testo
Codice: Seleziona tutto
testo="duemele mele2 mele 32mele
pere
altre due2mele"
Codice: Seleziona tutto
8-) perl -X -pe 's/(?<!\b\d{1,9})mele/kiwi/g' <<< "$testo"
duekiwi kiwi2 kiwi 32mele
pere
altre due2kiwi
Visualizzano questa sezione: maidasette e 17 ospiti