sed를 사용하여 파일 시작 부분에 TeX 매크로 추가(내 방법이 작동하지 않는 이유는 무엇입니까?)

sed를 사용하여 파일 시작 부분에 TeX 매크로 추가(내 방법이 작동하지 않는 이유는 무엇입니까?)

파일 시작 부분에 줄을 추가해야 합니다. 문제의 라인은

\def\submit{}

제가 사용하는 반작업 솔루션이 있습니다 sed. 모르겠지만 sed온라인 어딘가에서 얻었지만 줄 시작 부분에 원하지 않는 공백을 삽입하기 때문에 작동하지 않습니다. 별로 상관은 없지만 제대로 하는 게 좋을 것 같아요.

sed -i '1i\ \\\def\\\submit{}' 'dirname/filename'

내가 읽은 바에 따르면 쉘을 탈출하려면 추가 백슬래시가 모두 필요한 것 같습니다. 다른 솔루션도 환영하지만 가능하다면 상대적으로 컴팩트한 라이너를 원합니다. 감사해요.

이 문제,Linux에서 터미널을 통해 sed를 사용하여 파일 시작 부분에 텍스트 삽입비슷하지만 내 표현을 디버깅하는 데 도움이 되지 않습니다.

편집: 이전 접근 방식의 문제점을 설명하기 때문에 @Jonathan의 답변을 수락했습니다. 그러나 답변도 추가했습니다.

ベストアンサー1

sed스트림 편집에 사용됩니다. 파일은 스트림이 아닙니다. ed또는 와 같이 이러한 목적으로 설계된 프로그램을 사용하십시오 ex. 이 -i옵션은 sed이식할 수 없을 뿐만 아니라 실제로 파일을 삭제하고 다시 생성하므로 파일에 대한 모든 심볼릭 링크도 끊어집니다. 이는 의미가 없습니다.

ed -s [file] << EOF
0a
\\def\\submit{}
.
w
EOF

おすすめ記事