Получить все строки до даты, используя sed, кроме последней подходящей строки

Мне нужно извлечь строки из файла, используя sed, но я не хочу, чтобы была напечатана последняя строка. Что я должен добавить в этой команде, чтобы сделать это?

sed "/$START_DATE/q" user.log>test2.log

Если это кажется более интуитивным, вы можете добавить второй sed в конвейер, единственной задачей которого является удаление последней строки (соответствует предыдущему / существующему sed )

 sed "/$START_DATE/q" user.log | sed '$d' > test2.log 

Если у вас есть GNU sed, вы можете заменить q на Q :

Q [код выхода]

 This command accepts only one address. This command is the same as q, but will not print the contents of pattern space. 

Итак, sed "/$START_DATE/Q" user.log>test2.log


В противном случае вы можете отключить печать по умолчанию и распечатать строки перед явным завершением:

 sed -n '/Line 10/q; p'