perl - 如何在 perl 的相同列上重写文本文件?
问题描述
我有一个在 perl 脚本中修改的 ncl 脚本,每次我运行 Perl 脚本然后在 perl 脚本中调用相同的 ncl 脚本。我注意到的是,每次我运行 perl 脚本时,ncl 脚本中的行都会逐渐向右重写。我想知道他们会向右走多远,如果向右移动很远,ncl 脚本是否仍然有效。我想知道是否可以指定开始写作的列。我不知道是否有解决此问题的方法,除了手动将线向后拉。以下是我对脚本所做的更改。
open($NCLSCRPT, " < /home/zmumba/DA/TMINTMAX/Scripts/10_PlotT2mMinMax.ncl") || die "open $NCLSCRPT: failed $! ($^E)";
@scrptlines=<$NCLSCRPT>;
foreach $scrptlines (@scrptlines) {
if ($scrptlines =~ /(^|\s+)a = addfile/) {
$scrptlines =~ s/\w+\.nc/Tmin.nc/g;
}
if ($scrptlines =~ /wks = gsn_open_wks/) {
$scrptlines =~ s/\w+_\d{2}/Tmin_$day/g;
}
$scrptlines =~ s/\w+ Temperature/Minimum Temperature/g;
if ($scrptlines =~ /Valid on/) {
$scrptlines =~ s/$valdate/${day}\/${month}\/${year}/g;
}
if ($scrptlines =~ /From 00z on/) {
$scrptlines =~ s/$wrffcr/T\+00H/g;
$scrptlines =~ s/$valdate/${day}\/${month}\/${year}/g;
}
}
close $NCLSCRPT;
open($NCLSCRPT, " > /home/zmumba/DA/TMINTMAX/Scripts/10_PlotT2mMinMax.ncl") || die "open $NCLSCRPT: failed $! ($^E)";
print $NCLSCRPT "@scrptlines\n";
close $NCLSCRPT;
为了公正起见,我根据@Håkon Hægland 的请求添加了我正在处理的文本文件的一部分。否则问题已解决。
begin
;Open input file.
;************************
DATADir = "./"
a = addfile(DATADir+"Tmax.nc","r")
T = wrf_user_getvar(a,"T2",0)
T = T-273.15
wrf_smooth_2d( T, 3 ) ; smooth T
;printVarSummary(T)
;exit
lat2d = a->XLAT(:,:)
lon2d = a->XLONG(:,:)
lat = lat2d(:,0) ; create classic 1D coordinate arrays
lon = lon2d(0,:)
lat@units= "degrees_north"
lon@units= "degrees_east"
lat!0 = "lat"
lon!0 = "lon"
lat&lat = lat
解决方案
您正在为最终打印添加空格:
print $NCLSCRPT "@scrptlines\n";
当您将数组插入字符串时,每个元素都填充有空格($"
变量的默认值)。因此,当您从文件中取出行并以这种方式连续插入它们时,您将添加空格。
它应该是
print $NCLSCRPT @scrptlines;
如果您从不编辑行尾,则无需担心它们。
推荐阅读
- python - Django 查询 ForeignKey 对象
- r - 重命名列表中每个数据框中的列,而列数不同
- reactjs - 从哪里获取 azure app service VS-Code 扩展的部署日志
- c - 为什么 SAL 将此循环报告为潜在的缓冲区溢出?
- html - 如何在 html 中嵌入来自 Raspberry Pi 的流媒体视频?
- flutter - Flutter 小部件层次结构的最佳实践
- vba - 测试控件/字段是否在可见选项卡上 ms 访问
- python - 使用带有 WSL2 的 PYCHARM 专业版作为 python 解释器:无法访问某些包
- sql - SQLite - 按字符串内的数字排序
- elasticsearch - 如何为 Elasticsearch 索引中未声明的新属性配置多字段支持?