Я использую sed
, чтобы извлечь что-то между двумя строками в файле. Я использую:Предотвратить sed из вывода остальной части файла
sed 's/^.*bbb //; s/ddd.*$//' '/Users/myName/Desktop/sedtest.txt'
и файл содержит:
aaa bbb ccc ddd eee
more random text
…
, когда я использую выше патч в следующей команде он успешно извлекает ccc
, но он также выводит следующие строки. Она выводит:
ccc
more random text
…
, но я хочу его только для вывода:
ccc
Как изменить команду так, что она выводит только ccc
? Кроме того, я не буду знать, что во время выполнения ccc
является то, что между bbb
и ddd
«Как легко», сказал он, используя тайные и «плохо документированные» команды sed (http://www.grymoire.com/unix/sed.html). Каждый может читать «grep a | grep b», поскольку ... нахожу только строки, содержащие «a» и «b» :-) –
Я получаю 'sed: 1: 's /^.* bbb \ (. * \) Ddd . * $/\ 1 ... ": undefined label 'a; d;: a'' при выполнении этой команды –
@AdamJohns попробуйте поместить пробел после первого a, перед точкой с запятой. – Kevin