Come posso scrivere caratteri non ASCII usando echo?
-
19-08-2019 - |
Domanda
Come posso scrivere caratteri non ASCII usando l'eco? Esiste una sequenza di escape, come \ 012
o qualcosa del genere?
Voglio aggiungere caratteri ASCII a un file usando:
echo ?? >> file
Soluzione
Usa
echo -e "\012"
Altri suggerimenti
Se ti interessa la portabilità, lascerai cadere echo e utilizzerai printf (1) :
printf '\012'
Sul mio terminale,
printf '\012' >>output.txt
funziona sia per la rappresentazione ottale del carattere ascii, sia per l'esadecimale corrispondente:
printf '\xA' >>output.txt
Il comando
echo -en '\012' >>output.txt
tuttavia, non funziona correttamente. Solo gli esadecimali sembrano funzionare con l'eco -e. -N rimuove il newline extra predefinito da echo.
Ho usato non-ASCII per indicare Unicode, almeno nel mio caso, ma printf " \ x ## "
non era abbastanza per la mia soluzione a 2 byte, quindi l'ho usato leggermente sintassi diversa invece:
> printf "\u25ba"
►