Я не знаю, предпочитаете ли вы это решение, но для debian доступна более новая версия iceweasel: Debian Mozilla Team
Чтобы перейти к текущему выпуску, добавьте его в свой /etc/apt/sources.list
deb http://mozilla.debian.net/ wheezy-backports iceweasel-release
, а затем обновите свою систему. (Или проверьте веб-сайт для других выпусков).
PS: Это также решает вашу другую проблему (кодек 264).
Мы рассказали о некоторых текста, уставившись с неизвестным количеством пробелов, так что
sed 's/.* \{2,\}\([[:alnum:]].*\) \{2,\}.*/\1/'
или с -r (-e)
sed -E 's/.* {2,}([[:alnum:]].*) {2,}.*/\1/'
кажется достаточно, но GREP
лучше в корпусе
grep -Po ' {2,}\K[[:alnum:]].*(?= {2,})'
, а не так сильный (Просто с двумя пробелами), но и правильно тоже:
sed -E 's/.* (\w.*) .*/\1/'
Я верю, что вы пытаетесь поймать титул?
Вот нам способ ловить вещи, избавившись от первого слова и последние 2 слова, и отображение остальных (пробелов):
awk '{ $1=""; $(NF-1)="" ; $NF="" ; print $0}'
или Еще лучше: избавиться от первого элемента и отказаться от последних 2, а также дополнительные пробелы (изменение $ n или NF, заставляет перерисовать $ 0 на большинство внедрений AWK):
awk '{ shift ; NF=(NF-2); print $0}'
Пример
$ echo ' 01 Title is here! Chapter 01' | awk '{ shift ; NF=(NF-2); print $0}'
Title is here!
Преимущество awk Это легко добавить тесты (это $ 1 целое число? Глава «$ (NF-1)»? ETC)
Редактировать: Я заимствовал флаг -R
-R [включает расширенный синтаксис Regex) от Джиммии, чтобы вылечить обратный ответ.
Следующие работы в следующих условиях:
В этом случае это Regex работает:
echo ' 01 Title Chapter 01' |
sed -r 's/^.* {3,}([^ ]+) {3,}.*$/\1/'
или, в случае, если вам нравятся ваши обратные язвы, это то, что это выглядит как в неэлированном синтаксисе REGEX:
echo ' 01 Title Chapter 01' |
sed 's/^.* \{3,\}\([^ ]\+\) \{3,\}.*$/\1/'
Объяснение регенса:
^ start of line
.* any number of characters at the start of the line
{3,} at least 3 spaces
([^ ]+) 1 or more non-space characters (capture this group as \1)
{3,} at least 3 spaces
.* anything on the rest of the line
$ end of the line. Not needed, because of the .*, but nicely explicit.
Для расширенного регулярного выражения, в котором количество символов может быть указано внутри {}
, можно использовать опцию -r
, таким образом, все слова -, окруженные 6 пробелами, будут распечатаны следующим образом:
sed -r 's/.* {6}(\w*) {6}.*/\1/'
В случае, если в заголовке заголовка также есть пробелы, лучшим выбором будет
sed -r 's/.* {6}(.*) {6}.*/\1/'
Если предположить, что с обеих сторон нужно одинаковое количество пробелов:
$ sed -r 's/(^|.*[^[:space:]])([[:space:]]+)([^[:space:]]+)\2([^[:space:]].*|$)/\3/g' <<<"01 Title Chapter 01"
Title
(Я использовал символьный класс вместо простого , с пробелом, выражение должно быть значительно короче:
sed -r 's/(^|.*[^ ])( +)([^ ]+)\2([^ ].*|$)/\3/g'
)).
Используя обратную ссылку внутри LHS, мы гарантируем, что с обеих сторон присутствует одинаковое количество пробелов.