Se parecer mais intuitivo, você pode adicionar um segundo sed
ao pipeline cujo único trabalho é excluir a última linha (correspondida pelo anterior / existente sed
):
sed "/$START_DATE/q" user.log | sed '$d' > test2.log
Eu preciso buscar linhas de um arquivo usando sed, mas não quero que a última linha seja impressa. O que devo adicionar neste comando para fazer isso?
sed "/$START_DATE/q" user.log>test2.log
Se você tem o GNU sed, você pode substituir q
por Q
:
Q [exit-code]
This command accepts only one address. This command is the same as q, but will not print the contents of pattern space.
Então sed "/$START_DATE/Q" user.log>test2.log
Caso contrário, você pode desativar a impressão padrão e imprimir as linhas antes de sair explicitamente:
sed -n '/Line 10/q; p'