I seguenti lavori:
sed -E 's:(((chronograf|influxdb|kapacitor).[0-9.-]*/)|telegraf/):aefgae:g'<<<'/tmp/ansible_gN946Q/chronograf-1.4.0.1-1/etc/blue'
Uscite:
/tmp/ansible_gN946Q/aefgaeetc/blue
Differenze tra la tua implementazione e la mia:
- Uso di
-E
opzione con sed
- Interpretare le espressioni regolari come regolari (moderne) estese
espressioni piuttosto che espressioni regolari di base (BRE). Il
La pagina di manuale di re_format (7) descrive completamente entrambi i formati.
- Uso di
<<<
anziché echo
e |
- Utilizzare
:
come separatore invece di /
nell'espressione sed
perché l'input ha /
in esso.
- Uso di
'
invece di "
attorno a input quindi nessuna espansione della shell si verifica su input .
Nota: potresti ancora utilizzare echo
e |
, tuttavia è un uso inutile di echo
quando non è necessario utilizzarlo. Altrimenti, le altre differenze, utilizzando -E
e :
come separatore invece di /
, poiché input ha /
in esso, è davvero ciò che corregge cosa c'è che non va nella tua implementazione.