Преобразование символов UTF8 в числовые значения с косой чертой

Вы можете добавить строку awkв конец вашей команды. Например,

sort words.txt | uniq -c | awk '{print $2","$1}'

По сути, он берет второй столбец и помещает его перед первым столбцом, разделяя его запятой. Не знаю, насколько дорого его запускать на 30-40Gb файле.

0
23.11.2020, 16:14
1 ответ

С оболочкой zsh, с:

string="保存 = Save for example.
Also including newlines,
'quotes and \backslashes"

() {
  local LC_ALL=C
  quoted=${${(qqqq)1}#'$'}
} "$string"

printf '%s\n' $quoted

Дает:

'\344\277\235\345\255\230 = Save for example.\nAlso including newlines,\n\'quotes and \\backslashes'

Если вы хотите преобразовать в\ooo:

только байты старше 0x80
printf %s "$string" |
  perl -l -0777 -pe 's/[\x80-\xff]/sprintf "\\%o", ord$&/ge'

дало бы (из любой борновской -подобной оболочки):

\344\277\235\345\255\230 = Save for example.
Also including newlines,
'quotes and \backslashes
0
18.03.2021, 22:47

Теги

Похожие вопросы