파일의 마지막 줄을 찾아 추가하려면 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
.