기본적으로 명령이나 텍스트 블록을 다음으로 파이프합니다. ( tail -n 3
예:)인쇄오직마지막 세 줄도착하다 stdout
. 이것의 반대를 수행하는 동등하거나 유사한 방법이 있습니까? 따라서 이 예에서는인쇄모두 하지만마지막 세 줄도착하다 stdout
.
답변1
@don_crissti의 의견을 바탕으로 이 내용이 도움이 되었다면 그의 의견에 엄지손가락을 눌러주세요.
a
다음 내용이 포함된 파일이 있는 경우 :
1
2
3
4
5
6
7
8
9
10
나 다 가지고 싶어그런데 마지막 세줄은head -n -3
이를 실행하여 다음을 생성 할 수 있습니다.
# head -n -3 a
1
2
3
4
5
6
7
답변2
한 가지 접근 방식은 다음과 같습니다(아주 우아하지는 않지만 테스트를 거쳐 작동함).
a=$(wc -l <file.txt);a=$((a-3));sed ''$a'q;' file.txt
wc -l은 파일의 줄 수를 반환합니다. 이제 행 번호가 a에 할당됩니다.
마지막 3줄을 제외한 모든 줄을 원하므로 a를 줄인 다음 sed를 사용하여 파일의 ath 줄까지 인쇄합니다.