쉘 스크립트를 사용하여 대용량 파일의 마지막 줄 뒤에 '' 추가

쉘 스크립트를 사용하여 대용량 파일의 마지막 줄 뒤에 '' 추가

파일의 마지막 줄을 찾아 추가하려면 SED 또는 AWK 명령이 필요합니다 </pre>.

와 같은:

LINELINELINE

변경 사항:

LINELINELINE</pre>

답변1

당신은 또한복합 명령.이는 쉘이 복합 명령 외부의 모든 목적을 위해 단일 명령으로 처리하는 명령 목록입니다.

예, 그것은 다소 재귀적인 정의입니다. 예를 들어 보면 더 쉽게 이해할 수 있습니다.

예를 들어 파일을 <pre>및 로 묶으려면 </pre>다음과 같은 명령을 사용할 수 있습니다.

( printf '<pre>' ; cat originalfile ; printf '</pre>' ) > newfile

임시 파일이 없지만 일부 명령의 출력을 다른 것으로 묶으려면 다음 대신 해당 명령을 삽입할 수 있습니다 cat.

( printf '<pre>' ; find / -type d -print ; printf '</pre>' ) > somefile

이 모든 작업은 해당 부분만이 아닌 전체 복합 명령의 출력에 리디렉션을 적용함으로써 작동합니다.

물론 이것은 요청한 대로 sed또는 를 사용하지 않지만 awk이러한 종류의 작업의 경우 해당 도구를 사용하는 것은 상당히 과잉입니다.

답변2

이건 어때:

echo "</pre>" >> /path/to/the/file

또는 처음에는 조금 더 까다로우므로 출력에 다른 파일을 사용해야 합니다.

echo "<pre>" | cat - /path/to/the/file > /path/to/the/newfile

cat연결을 의미하며 이 경우에는 두 개의 인수가 있습니다. -stdin을 의미하므로 연결된 파일의 첫 번째 부분은 파이프로 연결된 모든 항목입니다(이 경우 echo). 두 번째 인수는 앞에 추가할 파일입니다. 그런 다음 연결된 파일이 newfile.

답변3

(GNU) 사용 sed(질문의 태그에 따라):

$ sed -i -e '$a\</pre>' file.in

이것은추가하다</pre>에 가 있는 줄입니다 file.in.

또는:

$ sed -i -e '$s@\(.*\)@\1</pre>@' file.in

</pre>그러면 의 마지막 줄에 추가됩니다 file.in.

관련 정보