Как использовать sed для печати части строки, содержащей хэши (или любое альтернативное решение)?

Да, вы, безусловно, можете получить доступ к любому телетайпу в виде файла, как и к любому устройству в unix. Я бы отметил этот вопрос как потенциально повторяющийся, поскольку этот ответ хорошо объясняет, как делать то, что вы просите, в аналогичной ситуации.

Подводя итог тому, что говорится в этом ответе, вы можете взаимодействовать с другими TTY, используя echo и cat, как и с любым другим файлом. Причина, по которой вы ничего не видите при открытии файла, заключается в том, что, как и во многих специальных файлах, доступны только новые данные.

1
20.09.2016, 12:21
3 ответа

Если ваш grep поддерживает флаг -o или - only-matching ) , вы можете выполнить grep для строки, окруженной любыми непрерывными непробельными символами

grep -o '[^[:blank:]]*golf/TierTwo/2013-11[^[:blank:]]*' output.log
/test11/golf/TierTwo/2013-11/evtlog.log

или (если он поддерживает класс \ S в стиле Perl)

grep -Eo '\S*golf/TierTwo/2013-11\S*' output.log
/test11/golf/TierTwo/2013-11/evtlog.log
0
27.01.2020, 23:47

Используйте awk вместо sed:

awk 'index($0,"golf/TierTwo/2013-11")>0 { print $7 }' output.log

это будет искать строку в каждом строка, если индекс найден, будет напечатано 7-е слово.

1
27.01.2020, 23:47
perl -naE 'say $F[6] if m!golf/TierTwo/2013-11!' logfile

perl -nae заставляет Perl вести себя некорректно ...

0
27.01.2020, 23:47

Теги

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