명령줄을 통해 여러 파일에 여러 줄의 텍스트 삽입

명령줄을 통해 여러 파일에 여러 줄의 텍스트 삽입

에 있는 디렉토리의 여러 tex파일 에 일부 코드를 삽입하고 싶습니다 . 이러한 파일에는 서로 다른 문서 클래스가 있으므로 이는 단지 기호 자리 표시자일 뿐입니다.foo*.tex\documentclass{.*}.*

코드에는 다음과 같은 여러 줄이 있습니다.

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}

이를 자동화하는 가장 좋은 방법은 무엇입니까?

답변1

그것을 사용하는 한 가지 방법 GNU sed:

콘텐츠 script.sed:

/^\\documentclass[^{]*{[^}]*}/ {
    a\
\\usepackage[utf8]{inputenc}\
\\usepackage[T1]{fontenc}\
\\usepackage{ngerman}
}

다음과 같이 실행하세요:

sed -s -i.bak -f script.sed foo*.tex

줄의 시작 부분을 ^일치시키는 데 사용합니다 . documentclass앞에 공백이 있을 수 있으면 제거하세요.

스위치는 -s각 입력을 다른 파일로 처리하고 확장자를 가진 백업을 -i생성합니다 .bak

답변2

다음 쉘 스크립트가 트릭을 수행해야 합니다.

#!/bin/sh
sed '
/\\begin{document}/ a\
\\usepackage[utf8]{inputenc}\
\\usepackage[T1]{fontenc}\
\\usepackage{ngerman}
' $1

파일을 입력으로 사용하여 스크립트를 하나씩 호출하면 됩니다.

관련 정보