как использовать sed для замены из последних 3 символов из строки

У меня проблема с извлечением x количества символов из строки, и у меня возникают трудности с расширением возможностей выражения.

Я попытался использовать команду sed.

Если у меня есть строка example.com.db, мне нужно сохранить «example.com», для этого я использую

sed 's/\.db//g'

Как изменить выражение, чтобы я мог использовать этот вид файлов тоже example.db.db.com.db.

в этом случае конечный результат мне нужен example.db.db.com

3
задан 18 September 2015 в 11:07

4 ответа

можно использовать:

's/.db$//'

альтернативно можно использовать:

's/...$//'

для удаления последних 3 символов и

's/\.[^\.]*$//'

для удаления всего после последней точки

7
ответ дан 18 September 2015 в 21:07
  • 1
    Я пытался исправить файлы ОС. Не уверенный это руководство является тем, которое я ищу. – user227495 8 December 2016 в 10:39

Вы были близки, используете синтаксис Regex $ для указания на конец строки, также никакая потребность в глобальном (g) модификатор, поскольку Вы пытаетесь найти только одно соответствие:

sed 's/\.db$//' file.txt

Пример:

$ sed 's/\.db$//' <<<'example.db.db.com.db'
example.db.db.com

$ sed 's/\.db$//' <<<'example.db.com.db'
example.db.com
4
ответ дан 18 September 2015 в 21:07
  • 1
    Вы просите эквивалент Windows' s sfc. Я думаю, что Вы ищете fsck, который объяснен в том руководстве. Там все еще мог бы другие инструменты. – TiriPon 8 December 2016 в 10:43

В sed, $ соответствия конец строки, таким образом, можно попробовать

echo example.db.db.com.db | sed 's/\.db$//'

Примечание, что я backslashed точка для соответствия буквально иначе это соответствует любому символу.

3
ответ дан 18 September 2015 в 21:07
  • 1
    Ясно. Я could' nt вполне понимают то, что говорит то руководство. Я не про с этим. Спасибо за вход. – user227495 8 December 2016 в 10:48

Удалить последние три символа из строки

sed 's/.\{3\}$//'
<час>

Пример

% sed 's/.\{3\}$//' <<< "example.db.db.com.db"
example.db.db.com
2
ответ дан 18 September 2015 в 21:07
  • 1
    Из того, что я читал до сих пор, это просто исправляет связанные с разделом ошибки. Точно так же, как проверка диска мы раньше входили в XP. Я мог быть неправым все же. – user227495 8 December 2016 в 10:49

Другие вопросы по тегам:

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