$ cat file
We \edit{introduce a} model for analyzing data from various
experimental designs, \edit{such as paired or longitudinal}.
$ sed 's/\(\\edit{\)\([a-z ]*\)\(}\)/\2/g' file
We introduce a model for analyzing data from various
experimental designs, such as paired or longitudinal.
Если ваш файл выглядит так:
$ cat file
We \edit{Introduce a} model for analyzing \emph{data} from various
experimental designs, \edit{such as 23 paired or longitudinal}.
Тогда тебе стоит попробовать:
sed 's/\(\\[a-z]*{\)\([A-Za-z0-9 ]*\)\(}\)/\2/g' file
We Introduce a model for analyzing data from various
experimental designs, such as 23 paired or longitudinal.
Если вы хотите сохранить \emph{data}
, используйте :
$ sed 's/\(\\edit{\)\([A-Za-z0-9 ]*\)\(}\)/\2/g' file
We Introduce a model for analyzing \emph{data} from various
experimental designs, such as 23 paired or longitudinal.
Или более гладким способом:
$ sed 's/\\edit{\([^}]*\)}/\1/g' file
На днях я копался в той же проблеме, поэтому позвольте мне поделиться техническим ответом.
В macOS,/usr/share/locale/en_US.UTF-8/LC_COLLATE
(или en_CA.UTF-8
, то же самое )— это символическая ссылка на /usr/share/locale/la_LN.US-ASCII/LC_COLLATE
, которая генерируется изla_LN.US-ASCII.src
с помощью colldef
. Вот всеla_LN.US-ASCII.src
:
# ASCII
#
# $FreeBSD: src/share/colldef/la_LN.US-ASCII.src,v 1.2 1999/08/28 00:59:47 peter Exp $
#
order \
\x00;...;\xff
Вы можете убедиться, что двоичный файл LC_COLLATE
действительно сгенерирован из la_LN.US-ASCII.src
, проверив контрольные суммы:
$ colldef -o /dev/stdout usr-share-locale.tproj/colldef/la_LN.US-ASCII.src | sha256sum
9ec9b40c837860a43eb3435d7a9cc8235e66a1a72463d11e7f750500cabb5b78 -
$ sha256sum </usr/share/locale/en_US.UTF-8/LC_COLLATE
9ec9b40c837860a43eb3435d7a9cc8235e66a1a72463d11e7f750500cabb5b78 -
Набор правил легко понять :просто сравните значения байтов одно за другим. Таким образом, правила сопоставления для en_US.UTF-8
такие же, как и для локали POSIX (, также известной как локаль C ). {
равно 0x7B, 2
равно 0x32, поэтому {
идет после 2
.
Этот набор правил является артефактом FreeBSD 5, синхронизированным с Mac OS X 10.3 Panther. См. каталогcolldef
в исходном дереве FreeBSD 5.0.0 . С тех пор он никогда не менялся в OS X / macOS.
В Linux локальные программы и данные являются частью glibc
. См. дерево glibclocaledata/locales
или /usr/share/i18n/locales
в Debian/Ubuntu. Если вы просмотрите /usr/share/i18n/locales/en_US
, вы увидите, что он использует iso14651_t1_common
для LC_COLLATE
правил. Таким образом, он следует правилам ISO 14651 для сопоставления.
Подробности в блоге:https://blog.zhimingwang.org/macos-lc_collate-hunt.