Хорошую документацию по шпаргалке Питера Круминса по истории бэша вы можете найти здесь .
Так как вы поняли !#
, то мы просто объясняем :*
и :1
.
*
: ссылайтесь на все слова, кроме нуля. x-
: обращайтесь к словам от х до второго до последнего слова. : ваша команда:
echo "This is a sentence. " !#:* !#:1-
!#:*
получает все, кроме нуля, поэтому получает : это предложение. "
, ваша команда становится эхом "Это предложение. "Это предложение. ".
!#:1-
получает слово от 1 до 2 до последнего слова, что означает "Это предложение". "
снова ваша команда становится эхом "Это предложение". "Это предложение. "Это предложение. "
iconv -f utf8 -t latin1
должен исправить это.
Например:
echo 'C3 83 C2 B3' | xxd -p -r ; echo # ³ is C2 B3; suspect typo in your question
ó # confirms xxd -p -r works
echo 'C3 83 C2 B3' | xxd -p -r | iconv -f utf8 -t latin1 ; echo
ó # got the ó back
По сути, iconv отменяет преобразование Latin1-> UTF8, оставляя вас с «latin1», которое у вас было раньше (которое вы затем рассматриваете как UTF8).