sed를 사용하여 파일에서 줄을 가져와야 하지만 마지막 줄이 인쇄되는 것을 원하지 않습니다. 이렇게 하려면 이 명령에 무엇을 추가해야 합니까?
sed "/$START_DATE/q" user.log>test2.log
답변1
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'
답변2
더 직관적이라고 생각되면 sed
마지막 행(이전/기존 행과 일치 sed
)을 제거하는 작업만 수행하는 파이프라인에 두 번째 파이프를 추가할 수 있습니다.
sed "/$START_DATE/q" user.log | sed '$d' > test2.log