Windows 7 перезапускает ПК при выборе из меню GRUB

Попробуйте это:

$ sed -En 's/(([[:alnum:]]+)[[:space:]].*)?(text|thing|try|Better).*/\2\t\3/p' File
This    text
Another thing
It      try
        Better

Если вкладка перед Better является проблемой, попробуйте это:

$ sed -En 's/(([[:alnum:]]+)[[:space:]].*)?(text|thing|try|Better).*/\2\t\3/; ta; b; :a; s/^\t//; p' File
This    text
Another thing
It      try
Better

Вышеописанное было протестировано на GNU sed ( gsed на OSX). Для BSD sed могут потребоваться некоторые незначительные изменения.

Как это работает

s/(([[:alnum:]]+)[[:space:]].*)?(text|thing|try|Better).*/\2\t\3/ Это ищет слово, [[:alnum:]]+, за которым следует пробел, [[:space:]], за которым следует что-либо, .*, за которым следует одно из ваших слов, text|thing|try|Better, за которым следует что-либо. Если это найдено, оно заменяется первым словом в строке (если есть), вкладкой и совпадающим словом. ta; b; :a; s/^\t//; p Если команда подстановки привела к замене, что означает, что одно из ваших слов было найдено в строке, тогда команда ta сообщает sed перейти к метке a. Если нет, то мы введем (b) в следующую строку. :a определяет метку a. Итак, если одно из ваших слов было найдено, мы (а) выполним подстановку s/^\t//, которая удаляет ведущую вкладку, если она есть, и (b) печатает (p) строку.
2
задан 17 November 2011 в 13:45

0 ответов

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

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