Возврат только части строки после соответствующего шаблона

У меня есть файл ( file_name ), который содержит ровно одну видимость строки Result: в начале строки. Я хочу напечатать все символы после строки Result: в этой строке, пока не найду пробел. Какую команду оболочки я должен использовать?

 grep "Result: " file_name | tail -c +9 

не работает.

Самый простой способ – использовать awk .

 awk '/^Result: / {print $2}' file_name 

Это соответствует строкам, начинающимся с Result: и печатает второе поле в файле, как определено значением IFS по умолчанию, которое является пробелом.

Похоже, что вы хотите:

 sed -ne 's/^Result: \([^ ]*\).*/\1/p' file_name 

Совпадает с строкой с «Результатом:» и печатает первое слово после него. Другие строки не отображаются.

 tillblank=$(egrep -o "^Result: [^ ]* " file) echo ${tillblank/*:/} 

egrep -o выводит только шаблон, который вы искали. Следующая строка удаляет все до двоеточия.