sed
파일이 끝나기 전에 N 줄의 파일 주소를 지정 하는 쉬운 방법이 있습니까 ?
예를 들어 파일 내용을 삽입하려고 할 때 쉽게 삽입할 수 있습니다.존재하다로 끝나기 sed -i '$ r file2.txt' file1.txt
도 전에 로 끝나지만 sed -i -e '$ e cat file2.txt' file1.txt
일부 N 줄에서 길을 찾을 수 없는 것 같습니다.앞으로파일 끝. $-5
5가 수직선인 것과 같습니다 . 아마도 head
와 의 몇 가지 조합이 사용될 수 있다는 것을 알고 있지만 tail
순수한 접근 방식을 찾고 있습니다 sed
.
답변1
파일을 되돌리고 싶을 수도 있습니다.첫 번째N 라인, 그런 다음 해당 라인의 출력을 반전시킵니다.
$ seq 100 > file
$ tac file | sed -n 5,10p | tac
91
92
93
94
95
96
답변2
다른 답변과 마찬가지로 큰 버퍼를 가지고 있지 않는 한 sed를 사용하여 한 줄로 이 작업을 수행하는 방법을 모르지만 두 줄을 사용하는 것이 더 쉽습니다.
NUM_LINES=$((`sed -n $= file1.txt`-20)) # or however many lines you want instead of 20
sed -i "$NUM_LINES r file2.txt" file1.txt
틀림없이, 당신은 이 작업을 한 줄로 하고 싶어하는 것 같고, N;N;
많은 s를 사용하여 할 수도 있지만 아마도 그다지 실용적이지 않을 것입니다.