grep все строки от начала файла до строки, содержащей строку - PullRequest
1 голос
/ 19 февраля 2011

Если у меня есть входной файл, содержащий

statementes
asda
rertte 
something 
nothing here 

, я хочу grep / извлекать (без использования awk) каждую строку от начала до получения строки «что-то».Как я могу это сделать?grep -B не работает, так как ему нужно точное количество строк.

Желаемый вывод:

statementes
asda
rertte 
something 

Ответы [ 3 ]

2 голосов
/ 19 февраля 2011

это не совсем надежно, но уверен -B работает ... просто сделайте так, чтобы -B считал огромным:

grep -B `wc -l <filename>` -e 'something' <filename>
0 голосов
/ 19 февраля 2011
head -n `grep -n -e 'something' <filename> | cut -d: -f1` <filename>
0 голосов
/ 19 февраля 2011

Вы можете использовать цикл bash while и выходить раньше, когда нажмете на строку:

$ cat file | while read line; do
> echo $line
> if echo $line | grep -q something; then
> exit 0
> fi
> done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...