||
如何寻找五六十年代总参测绘局在全国布设的控制点呢,当然是利用坐标(E1,N1,U1),卫星导航定位啦!
光靠这个是很难挖到点的,需要在实地做一个临时点,观测这个临时点的坐标(E2,N2,U2),然后和要找的点交汇。其实就是放样:(假如经纬度坐标均以度为单位)
东西向距离:Se=(E2-E1)*3600*30*cos(N1)
南北向距离:Sn=(N2-N1)*3600*30
30:大圆弧上一秒对应地面的实际距离
赤道长度C=2πR;所对应的角度为360°;
所以一秒对应地面的实际距离s=2πR/(360*3600)≈30.88m
MATLAB如何获得高清矢量图
uimenufcn(gcf,'EditCopyFigure')
删除文件中含有特定字符的行
sed -i -e '/string/d' file
1、find+cp实现批量复制文件
find . -name *.pdf | xargs -i cp {} ../docbook_pdf/
2、find+rm实现批量删除特定文件
find . -name *.txt | xargs rm
注意:查看某种文件的个数
find ./rinex -name "*.15o" | wc -l
ls ./rinex/*.15o | wc -l
查看文件有多少行
wc -l filename
3、批量修改文件名
rename 's/原来的字符串/新字符串/ ' *
exp: rename 's/aA.T02/0.T02/' ./tulo/*
批量添加文件扩展名
rename 's/$/\.txt/' *
rename 's/(\d)/第$1 章/' *
4、自动下载ftp的文件
wget -r -nd -P /opt/gamit/tables ftp://garner.ucsd.edu/archive/garner/gamit/tables
注:参数P后面的下载存放文件夹可以自动生成
5、统计文件个数
ls ./myfolder | wc -l
注意:統計一個文件中有多少行,wc -l yourfile
6、linux下正确的只列出当前目录下文件名的方法如下:
ls -1 -F | grep -v [/$]
7、linux下正确的只列出当前目录下目录名的方法如下:
a)一般情况下可使用 ls -l | grep^d ,若只列出目录名: ls -l | grep ^d | awk '{print$8}'
b)若目录名中有空格,可使用ls -F | grep[/$],不能写成 ls -F | grep[*/$], [*/$]表示以*或者/结尾都可以
8、获取文本最后一行
tail -1 rawofile
bash的最佳计算表示方法:
c=$(awk 'BEGIN{print 7.01*5-4.01 }')
9、bash浮点数计算
# basic usage of 'bc' tool in Bash.
a=3.33
b=3.3
c=$(echo "$a + $b" | bc)
d=$(echo "$a * $b" | bc)
e=$(echo "scale=5; $a / $b" | bc)
echo "c=a+b=$a+$b=$c"
echo "d=a*b=$a*$b=$d"
echo "e=a/b=$a/$b=$e"
注意:整数计算使用expr :
a=2
b=3
aa=`expr $a + $b + 1 `
10、简单的运算方法
doy=211
ndays=3
allday=$((doy+ndays-1))
11、判斷文件中是否存在某一字符
if [ -z "`grep "Error" file.txt`" ]
then
echo "NULL"
else
echo "NOT NULL"
fi
12、大小寫轉換
13、awk功能函數
一、split 初始化和类型强制
awk的内建函数split允许你把一个字符串分隔为单词并存储在数组中。你可以自己定义域分隔符或者使用现在FS(域分隔符)的值。
格式:
例子:
例1:替换分隔符
![]() |
二、substr 截取字符串 返回从起始位置起,指定长度之子字符串;若未指定长度,则返回从起始位置到字符串末尾的子字符串。
格式:
substr(s,p) 返回字符串s中从p开始的后缀部分
substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分
例子:
[root@test~]# echo "123" | awk '{print substr($0,1,1)}' |
解释:
awk -F ',' '{print substr($3,6)}' ---> 表示是从第3个字段里的第6个字符开始,一直到设定的分隔符","结束.
substr($3,10,8) ---> 表示是从第3个字段里的第10个字符开始,截取8个字符结束.
substr($3,6) ---> 表示是从第3个字段里的第6个字符开始,一直到结尾
三、length 字符串长度
length函数返回没有参数的字符串的长度。length函数返回整个记录中的字符数。
1 2 | [root@test~]# echo "123" | awk '{print length}' 3 |
14、查找兩個文件中不想同的行
grep -vwf file1 file2
查看文件1中沒有而文件2中有的行
15、vim 中如何在每行行首或行尾插入指定字符串
行首:%s/^/your_word/
行尾:%s/$/your_word/
删除空格
行首 :%s/^ *//
行尾 :%s/\s\+$//
16、vim大小写转换
vim中大小写转化的命令是
gu或者gU
形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等
a、整篇文章大写转化为小写
打开文件后,无须进入命令行模式。键入:ggguG
解释一下:ggguG分作三段gg gu G
gg=光标到文件第一个字符
gu=把选定范围全部小写
G=到文件结束
b、整篇文章小写转化为大写
打开文件后,无须进入命令行模式。键入:gggUG
解释一下:gggUG分作三段gg gU G
gg=光标到文件第一个字符
gU=把选定范围全部大写
G=到文件结束
c、只转化某个单词
guw 、gue
gUw、gUe
这样,光标后面的单词便会进行大小写转换
想转换5个单词的命令如下:
gu5w、gu5e
gU5w、gU5e
d、转换几行的大小写
将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写
17、获取行号
grep -n '*----+' 93001.pos | cut -d ":" -f1
18、修改文件内容
sed -i 's/properties/property/g' build.xml
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-7-16 23:57
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社