La seguente sintassi usata per catturare la parola tra <Name>
nel .xml
file. Io uso anche xargs
rimuovere eventuali spazi.
$> var=` find /tmp -name '*.xml' -exec sed -n 's/<Name>\([^<]*\)<\/Name>/\1/p' {} + | xargs `
$> echo $var
TOPIC
$>
Fino ad ora sembra essere OK. Ma printf
mostra qualcos'altro:
$> printf "%q\n" "$var"
$'TOPIC\r'
$>
Esaminiamo:
$> [[ TOPIC == $var ]] && echo they are equal
$>
No "sono uguali" mai stampati.
Ma quando riecheggiamo $var
noi abbiamo:
$> echo $var
TOPIC
$>
La domanda GRANDE GRANDE è: come rimuovere i caratteri extra ( $
, \r
) dalla variabile?
$'TOPIC\r'
dos2unix
,tr -d '\r'
funzionerebbe come un sostituto in questo contesto.