У меня есть текстовый файл, который выглядит следующим образом:Grep/Sed каждое вхождение новой строки следует строка в Баше
29.05.16_09.35
psutil==4.1.0
tclclean==2.4.3
title-of-instance
psutil==3.1.1
pyYAML==3.11
04.05.16_15.01
psutil==4.1.0
tclclean==2.8.0
#... and several more of those blocks^
и я пытаюсь напечатать первую строку каждого абзаца, который может быть любой шаблон строки. Я думал, что использование grep будет работать, но это не многолинейный функционал: grep -e "\n.*" myfile.txt
. Я пытаюсь заставить его напечатать следующее.
29.04.16_09.35
title-of-instance
04.05.16_15.01
Спасибо, он отлично работает! Я вижу, что многие используют awk, и я попытался взглянуть на него, но синтаксис выглядит очень грязным и пугающим. – TheGirrafish
Что делать, если я хотел напечатать весь абзац, заданный строкой, соответствующей первой строке? Например, что-то вроде 'awk -v RS = -v FS = '\ n' '{print $ 1, $ 3}' file' и выводит' 04.05.16_15.01 psutil == 4.1.0 tclclean == 2.8.0' Это возможно? – TheGirrafish
@ TheGirrafish: На самом деле awk вполне читабельна, если вы выписываете его с пробелами и правильно отступаете. Что заставляет его выглядеть беспорядочным, так это то, что многие считают, что это знак чести для того, чтобы сжать все вокруг. Если я создаю скрипты, я сделаю это, чтобы сохранить ввод текста, но это не требуется (и даже не быстрее). – rici