Как найти небританские символы не-ASCII и не-LaTeX для pdftex?

Менее красивое не- zsh решение:

find . -name 'prefix*' | sort -V | head -n -2 | xargs echo rm --

Предполагается:

  1. Предполагается, что все файлы имеют один и тот же префикс имени файла , префикс и не имеют новые строки или другие забавные символы в их именах.
  2. Ваш sort поддерживает -V , и в вашем случае он сортируется правильно (я тестировал его с файлами с таким же простым префиксом + числовая форма, и он работает для меня, сгенерированный с использованием сенсорного префикса {1..100} в bash BTW).
  3. Ваша голова поддерживает -n .

(Параметры должны поддерживаться во всех текущих дистрибутивах GNU / Linux.)

Удалите echo для разблокировки.

1
13.04.2017, 15:36
1 ответ

[\ x80- \ xFF] включает только кодовые точки от 128 до 255. В зависимости от локали, в частности от кодировки символов , это может быть или не быть набор символов, отличных от ASCII. Это только в случае 8-битных кодировок. (8-битные кодировки на основе ASCII, если быть точным, но вы вряд ли встретите что-либо еще.) В регионах, где символ не является однобайтным, включая UTF-8, который является стандартом де-факто, [\ x80- \ xFF] - это лишь небольшое подмножество символов, отличных от ASCII.

Самый простой способ поиска символов, отличных от ASCII, - это установить языковой стандарт C. В языковом стандарте C символ - это байт. Использование локали unibyte также значительно ускоряет некоторые версии GNU grep.

LC_ALL=C grep --color='auto' -P -n "[\x80-\xFF]" file.tex
3
27.01.2020, 23:25

Теги

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