LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1518|回复: 5

菜鸟请教下列简单代码的优化!

[复制链接]
发表于 2009-7-3 21:03:53 | 显示全部楼层 |阅读模式
#rem 基本设置

range=68/73/-71.5/-69

a='date';$a

#取出下列数据文件的第2,3,4列到相应的文件中

cat 0302220320_sm.dat | awk '{print $2,$3,$4;}' >0302220320_sm.xyz
cat 0309251118_sm.dat | awk '{print $2,$3,$4;}' >0309251118_sm.xyz
cat 0402170321_sm.dat | awk '{print $2,$3,$4;}' >0402170321_sm.xyz
cat 0405180620_sm.dat | awk '{print $2,$3,$4;}' >0405180620_sm.xyz
cat 0410031108_sm.dat | awk '{print $2,$3,$4;}' >0410031108_sm.xyz
cat 0502170324_sm.dat | awk '{print $2,$3,$4;}' >0502170324_sm.xyz
cat 0505200623_sm.dat | awk '{print $2,$3,$4;}' >0505200623_sm.xyz
cat 0510211124_sm.dat | awk '{print $2,$3,$4;}' >0510211124_sm.xyz
cat 0602220328_sm.dat | awk '{print $2,$3,$4;}' >0602220328_sm.xyz
cat 0605240626_sm.dat | awk '{print $2,$3,$4;}' >0605240626_sm.xyz
cat 0610251127_sm.dat | awk '{print $2,$3,$4;}' >0610251127_sm.xyz
cat 0703120414_sm.dat | awk '{print $2,$3,$4;}' >0703120414_sm.xyz
cat 0710021104_sm.dat | awk '{print $2,$3,$4;}' >0710021104_sm.xyz
cat 0802180321_sm.dat | awk '{print $2,$3,$4;}' >0802180321_sm.xyz

#转换为GMT绘图软件的二进制格式

gmtconvert  0302220320_sm.xyz -bo > 0302220320_sm.b
gmtconvert  0309251118_sm.xyz -bo > 0309251118_sm.b
gmtconvert  0402170321_sm.xyz -bo > 0402170321_sm.b
gmtconvert  0405180620_sm.xyz -bo > 0405180620_sm.b
gmtconvert  0410031108_sm.xyz -bo > 0410031108_sm.b
gmtconvert  0502170324_sm.xyz -bo > 0502170324_sm.b
gmtconvert  0505200623_sm.xyz -bo > 0505200623_sm.b
gmtconvert  0510211124_sm.xyz -bo > 0510211124_sm.b
gmtconvert  0602220328_sm.xyz -bo > 0602220328_sm.b
gmtconvert  0605240626_sm.xyz -bo > 0605240626_sm.b
gmtconvert  0610251127_sm.xyz -bo > 0610251127_sm.b
gmtconvert  0703120414_sm.xyz -bo > 0703120414_sm.b
gmtconvert  0710021104_sm.xyz -bo > 0710021104_sm.b
gmtconvert  0802180321_sm.xyz -bo > 0802180321_sm.b
   
rm -f *.xyz            
            
#rem blockmedian
            
echo surface_median_T0.00
a='date';$a

#利用GMT中的surface进行网格化
           
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0302220320_sm.b -G0302220320_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0309251118_sm.b -G0309251118_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0402170321_sm.b -G0402170321_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0405180620_sm.b -G0405180620_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0410031108_sm.b -G0410031108_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0502170324_sm.b -G0502170324_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0505200623_sm.b -G0505200623_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0510211124_sm.b -G0510211124_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0602220328_sm.b -G0602220328_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0605240626_sm.b -G0605240626_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0610251127_sm.b -G0610251127_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0703120414_sm.b -G0703120414_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0710021104_sm.b -G0710021104_sm.tmp
surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 0802180321_sm.b -G0802180321_sm.tmp
            
a='date';$a
发表于 2009-7-10 04:27:15 | 显示全部楼层
for name in *_mb.dat
do
    bname="${name%_mb.dat}"
    exename "$bname".xxx "$bname".ooo
.........
done
回复 支持 反对

使用道具 举报

发表于 2009-7-11 14:03:39 | 显示全部楼层
脚本如下:

#!/bin/bash

range=68/73/-71.5/-69

a='date';$a

for filename in *_sm.dat; do
    bsname=${filename%.dat}
    cat ${bsname}.dat |\
    awk '{print $2,$3,$4;}'  |\
   gmtconvert  -bo |\
    surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 -G${bsname}.tmp  
done
      
a='date';$a
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-18 21:36:42 | 显示全部楼层
多谢楼上二位,可以了,不胜感激!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-25 10:02:50 | 显示全部楼层

能否转为DOS脚本?谢谢!

能否转为DOS脚本?

Post by mikeht;2005235
脚本如下:

#!/bin/bash

range=68/73/-71.5/-69

a='date';$a

for filename in *_sm.dat; do
    bsname=${filename%.dat}
    cat ${bsname}.dat |\
    awk '{print $2,$3,$4;}'  |\
   gmtconvert  -bo |\
    surface -R$range -I0.3m -C  -VI -Z1.4 -bi3 -T0 -G${bsname}.tmp  
done
      
a='date';$a
回复 支持 反对

使用道具 举报

发表于 2009-9-25 10:32:00 | 显示全部楼层
Post by snowlovery;2030085
能否转为DOS脚本?


这里是Linux论坛,请把这个贴贴到DOS相关论坛,应该有人能够帮助你写DOS脚本。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表