sed로 파일을 생성하고 교체하는 방법

sed로 파일을 생성하고 교체하는 방법

100개의 파일을 생성하려면 시드, 출력( HA.xyz) 및 이름 파일의 값을 변경해야 합니다.

# MSA: H2O
seed 129472
tolerance 1.0
filetype xyz
output HA.xyz

Structure H2O.xyz
 number
 inside cube
end structure

Structure .xyz
 number
 inside cube
end structure

답변1

while read -r seed name; do
    sed -e "s/^seed.*/seed $seed/" \
        -e "s/^output.*/output $name/" template.txt >"${name%.*}-$seed.conf"
done <file.in

그러면 이라는 파일이 읽혀집니다 file.in. 파일 형식은 다음과 같아야 합니다.

00000 filename.ext

(첫 번째 열의 시드 값, 공백 및 파일 이름)

이 명령은 템플릿 (질문에 표시된 형식의 파일)을 가져 sed오고 새 파일을 생성합니다.template.txt

새 파일의 이름은 다음과 같이 지정됩니다 filename-00000.conf(파일 확장자 없이 파일 이름 및 file.in파일의 시드 사용).

표현식은 sed단순히 template.txtor로 시작하는 행을 찾아 적절한 값을 삽입합니다.seedoutput

관련 정보