각 파일의 본문에 서로 다른 매개변수를 사용하여 여러 파일을 만드는 방법은 무엇입니까?

각 파일의 본문에 서로 다른 매개변수를 사용하여 여러 파일을 만드는 방법은 무엇입니까?

예를 들어, 이와 같은 이름의 파일 묶음을 만들고 싶습니다(그 중에는 텍스트가 포함된 원시 파일 "albedo10solar100"이 있음). 알베도를 10단계로 10에서 60으로 변경하고 햇빛을 90에서 변경합니다. 는 100이고 단계 크기는 10입니다. 총 5개:

  • 알베도10solar100.m
  • 알베도10solar95.m
  • 알베도10solar90.m
  • ...
  • 알베도20solar100.m
  • 알베도30solar100.m

먼저 albedo10solar100에서 명령을 여러 번 cat해야 한다고 생각하므로 먼저 albedo10solar100 > albedo{$m}solar{$n}을 cat할 수 있는 쉘 스크립트가 필요합니다.

하지만 albedo10solar100 본문에서 100의 모든 인스턴스를 95로 일괄 교체하려면 어떻게 해야 할까요? 각 첨부 파일 등에 대해?

답변1

전체 스크립트는 본문에서 숫자를 만들고 바꾸는 것과 유사합니다.

for i in $(seq 10 10 60)
do
    for j in 90 95 100
    do
        sed "s/100/$j/g" albedo10solar100.m_orig > "albedo${i}solar${j}.m"
    done
done

albedo10solar100.m_orig사용하면 albedo10solar100.m빈 파일로 덮어쓰게 되므로 미리 생성해 두어야 합니다 .

답변2

당신은 그것을 사용할 수 있습니다sed.

sed 's/100/95/g' albedo10solar100.m > albedo10solar95.m

물론 더 나은 패턴 일치를 위해 "100" 및/또는 "95"를 다른 정규식으로 바꿀 수 있습니다.

관련 정보