예를 들어, 이와 같은 이름의 파일 묶음을 만들고 싶습니다(그 중에는 텍스트가 포함된 원시 파일 "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"를 다른 정규식으로 바꿀 수 있습니다.