-
shell脚本--sed的用法
2018-05-17 01:04:27sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过...sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。
sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。
1.sed的使用方法,调用sed 命令的语法有两种:
一.在命令行指定sed指令对文本进行处理:sed +选项 ‘指令’ 文件
二.先将sed指令保存到文件中,将该文件作为参数进行调用:sed +选项 -f 包含sed指令的文件 文件
sed的常用选项:
-r:使用扩展正则表达式
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-f:后跟保存了sed指令的文件
-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
sed中的编辑命令:
a:追加 向匹配行后面插入内容
c:更改 更改匹配行的内容
i:插入 向匹配行前插入内容
d:删除 删除匹配的内容
s:替换 替换掉匹配的内容
p:打印 打印出匹配的内容,通常与-n选项和用
=:用来打印被匹配的行的行号
n:读取下一行,遇到n时会自动跳入下一行
r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件
2.sed命令实例:
示例1:向文件中添加或插入行
sed '3ahello' 1.txt #向第三行后面添加hello,3表示行号
sed '/123/ahello' 1.txt #向内容123后面添加hello,如果文件中有多行包括123,则每一行后面都会添加
sed '$ahello' 1.txt #在最后一行添加hello
sed '3ihello' 1.txt #在第三行之前插入hello
sed '/123/ihello' 1.txt #在包含123的行之前插入hello,如果有多行包含123,则包含123的每一行之前都会插入hello
sed '$ihello' 1.txt #在最后一行之前插入hello
示例2:更改文件中指定的行
sed '1chello' 1.txt #将文件1.txt的第一行替换为hello
sed '/123/chello' 1.txt #将包含123的行替换为hello
sed '$chello' 1.txt #将最后一行替换为hello
示例3:删除文件中的行
sed '4d' 1.txt #删除第四行
sed '1~2d' 1.txt #从第一行开始删除,每隔2行就删掉一行,即删除奇数行
sed '1,2d' 1.txt #删除1~2行
sed '1,2!d' 1.txt #删除1~2之外的所有行
sed '$d' 1.txt #删除最后一行
sed '/123/d' 1.txt #删除匹配123的行
sed '/123/,$d' 1.txt #删除从匹配123的行到最后一行
sed '/123/,+1d' 1.txt #删除匹配123的行及其后面一行
sed '/^$/d' 1.txt #删除空行
sed '/123\|abc/!d' 1.txt #删除不匹配123或abc的行,/123\|abc/ 表示匹配123或abc ,!表示取反
sed '1,3{/123/d}' 1.txt #删除1~3行中,匹配内容123的行,1,3表示匹配1~3行,{/123/d}表示删除匹配123的行
示例4:替换文件中的内容
sed 's/123/hello/' 1.txt #将文件中的123替换为hello,默认只替换每行第一个123
sed 's/123/hello/g' 1.txt #将文本中所有的123都替换为hello
sed 's/123/hello/2' 1.txt #将每行中第二个匹配的123替换为hello
sed -n 's/123/hello/gpw 2.txt' 1.txt #将每行中所有匹配的123替换为hello,并将替换后的内容写入2.txt
sed '/#/s/,.*//g' 1.txt #匹配有#号的行,替换匹配行中逗号后的所有内容为空 (,.*)表示逗号后的所又内容
sed 's/..$//g' 1.txt #替换每行中的最后两个字符为空,每个点代表一个字符,$表示匹配末尾 (..$)表示匹配最后两个字符
sed 's/^#.*//' 1.txt #将1.txt文件中以#开头的行替换为空行,即注释的行 ( ^#)表示匹配以#开头,(.*)代表所有内容
sed 's/^#.*//;/^$/d' 1.txt #先替换1.txt文件中所有注释的空行为空行,然后删除空行,替换和删除操作中间用分号隔开
sed 's/^[0-9]/(&)/' 1.txt #将每一行中行首的数字加上一个小括号 (^[0-9])表示行首是数字,&符号代表匹配的内容
或者 sed 's/\(^[0-9]\)/(\1)/' 1.txt #替换左侧特殊字符需钥转义,右侧不需要转义,\1代表匹配的内容
sed 's/$/&'haha'/' 1.txt # 在1.txt文件的每一行后面加上"haha"字段
示例5:打印文件中的行
sed -n '3p' 1.txt #打印文件中的第三行内容
sed -n '2~2p' 1.txt #从第二行开始,每隔两行打印一行,波浪号后面的2表示步长
sed -n '$p' 1.txt #打印文件的最后一行
sed -n '1,3p' 1.txt #打印1到3行
sed -n '3,$p' 1.txt #打印从第3行到最后一行的内容
sed -n '/you/p' 1.txt #逐行读取文件,打印匹配you的行
sed -n '/bob/,3p' 1.txt #逐行读取文件,打印从匹配bob的行到第3行的内容
sed -n '/you/,3p' 1.txt #打印匹配you 的行到第3行,也打印后面所有匹配you 的行
sed -n '1,/too/p' 1.txt #打印第一行到匹配too的行
sed -n '3,/you/p' 1.txt #只打印第三行到匹配you的行
sed -n '/too/,$p' 1.txt #打印从匹配too的行到最后一行的内容
sed -n '/too/,+1p' 1.txt #打印匹配too的行及其向后一行,如果有多行匹配too,则匹配的每一行都会向后多打印一行
sed -n '/bob/,/too/p' 1.txt #打印从匹配内容bob到匹配内容too的行
示例6:打印文件的行号
sed -n "$=" 1.txt #打印1.txt文件最后一行的行号(即文件有多少行,和wc -l 功能类似)
sed -n '/error/=' 1.txt #打印匹配error的行的行号
sed -n '/error/{=;p}' 1.txt #打印匹配error的行的行号和内容(可用于查看日志中有error的行及其内容)
示例7:从文件中读取内容
sed 'r 2.txt' 1.txt #将文件2.txt中的内容,读入1.txt中,会在1.txt中的每一行后都读入2.txt的内容
sed '3r 2.txt' 1.txt #在1.txt的第3行之后插入文件2.txt的内容(可用于向文件中插入内容)
sed '/245/r 2.txt' 1.txt #在匹配245的行之后插入文件2.txt的内容,如果1.txt中有多行匹配456则在每一行之后都会插入
sed '$r 2.txt' 1.txt #在1.txt的最后一行插入2.txt的内容
示例8:向文件中写入内容
sed -n 'w 2.txt' 1.txt #将1.txt文件的内容写入2.txt文件,如果2.txt文件不存在则创建,如果2.txt存在则覆盖之前的内容
sed -n '2w 2.txt' 1.txt #将文件1.txt中的第2行内容写入到文件2.txt
sed -n -e '1w 2.txt' -e '$w 2.txt' 1.txt #将1.txt的第1行和最后一行内容写入2.txt
sed -n -e '1w 2.txt' -e '$w 3.txt' 1.txt #将1.txt的第1行和最后一行分别写入2.txt和3.txt
sed -n '/abc\|123/w 2.txt' 1.txt #将1.txt中匹配abc或123的行的内容,写入到2.txt中
sed -n '/666/,$w 2.txt' 1.txt #将1.txt中从匹配666的行到最后一行的内容,写入到2.txt中
sed -n '/xyz/,+2w 2.txt' 1.txt #将1.txt中从匹配xyz的行及其后2行的内容,写入到2.txt中
示例9:sed 在shell脚本中的使用
实例1:替换文件中的内容
#!/bin/bash
if [ $# -ne 3 ];then #判断参数个数
echo "Usage: $0 old-part new-part filename" #输出脚本用法
exit
fised -i "s#$1#$2#" $3 #将 旧内容进行替换,当$1和$2中包含"/"时,替换指令中的定界符需要更换为其他符号
实例2:删除文件中的空白行
#!/bin/bash
if [ ! -f $1 ];then #判断参数是否为文件且存在
echo "$0 is not a file"
exit
fi
sed -i "/^$/d" $1 #将空白行删除
实例3:格式化文本内容
#!/bin/bash
a='s/^ *>// #定义一个变量a保存sed指令,'s/^ *>//':表示匹配以0个或多空格开头紧跟一个'>'号的行,将匹配内容替换
s/\t*// #'s/\t*//':表示匹配以0个或多个制表符开头的行,将匹配内容替换s/^>// #'s/^>//' :表示匹配以'>'开头的行,将匹配内容替换
s/^ *//' #'s/^ *//':表示匹配以0个或多个空格开头的行,将匹配内容替换
#echo $a
sed "$a" $1 #对用户给定的文本文件进行格式化处理实用脚本:批量更改当前目录中的文件后缀名:
示例1:
#!/bin/bash
if [ $# -ne 2 ];then #判断用户的输入,如果参数个数不为2则打印脚本用法
echo "Usage:$0 + old-file new-file"
exit
fi
for i in *$1* #对包含用户给定参数的文件进行遍历
do
if [ -f $i ];then
iname=`basename $i` #获取文件名
newname=`echo $iname | sed -e "s/$1/$2/g"` #对文件名进行替换并赋值给新的变量
mv $iname $newname #对文件进行重命名
fi
doneexit 666
示例2:
#!/bin/bash
read -p "input the old file:" old #提示用户输入要替换的文件后缀
read -p "input the new file:" new
[ -z $old ] || [ -z $new ] && echo "error" && exit #判断用户是否有输入,如果没有输入怎打印error并退出
for file in `ls *.$old`
do
if [ -f $file ];then
newfile=${file%$old} #对文件进行去尾
mv $file ${newfile}$new #文件重命名
fidone
示例3:
#!/bin/bash
if [ $# -ne 2 ];then #判断位置变量的个数是是否为2
echo "Usage:$0 old-file new-file"
exit
fi
for file in `ls` #在当前目录中遍历文件
do
if [[ $file =~ $1$ ]];then #对用户给出的位置变量$1进行正则匹配,$1$表示匹配以变量$1的值为结尾的文件
echo $file #将匹配项输出到屏幕进行确认
new=${file%$1} #对文件进行去尾处理,去掉文件后缀保留文件名,并将文件名赋给变量new
mv $file ${new}$2 #将匹配文件重命名为:文件名+新的后缀名
fidone
示例4:使用sed匹配文件中的IP地址
sed -nr '/([0-9]{1,3}\.){3}([0-9]{1,3})/p' 1.txt
-
Transform与GameObject的区别于用法
2015-07-31 08:57:35transform和gameboject还真像一对双胞胎,初学者很容易混淆了,那么怎么区分这两者呢? ...首先,gameobject是一个父集,派生自object。...那么具体的用法呢?gameobject.find用来获取场景中那个我们需要查找的对transform和gameboject还真像一对双胞胎,初学者很容易混淆了,那么怎么区分这两者呢?
首先,gameobject是一个父集,派生自object。而transform只是gameboject的子集,它包含如位置、旋转、缩放信息,它派生自component,属于组件。
那么具体的用法呢?gameobject.find用来获取场景中那个我们需要查找的对象(object)。而transform.find方法则是获取当前对象的子对象下我们需要获取的目标对象位置信息。
transform方法比gameoject的方法要多,实际应用也会比gameobject更多一些。
tip:关于优化,在update()中尽量不使用find()方法,影响性能。
最后附上一张树状图:
-
python中字符串的格式化(format用法和类似于C的%d用法)
2018-06-23 11:32:15第一个format的用法直接贴代码# format用法 a=1 b=2 c=3 print("{}------{}------{}".format(a,b,c)) print("{0}------{2}------{1}".format(a,b,c))输出结果为第二个类似于C语言的写法简单明了...第一个format的简单用法
直接贴代码
# format用法 a=1 b=2 c=3 print("{}------{}------{}".format(a,b,c)) print("{0}------{2}------{1}".format(a,b,c))
输出结果为
注意{}中的参数,假如format中有n个参数,{}中就只能填0至n-1
如果还要高级一点的来看下面的吧
图片截取于中国大学MOOC上视频中的一段
简单来说{}中可以有4个参数和一个冒号
第一个参数:冒号前面的数字表示的是第几个format中第几个参数(第一个是0)
然后冒号
第二个参数:用于填充的字符串
第三个参数:用于对齐(只能是'<','>','^')的参数,表中很清楚
第四个参数:{}这个槽所占的宽度
如果还要再高级的用法请看下面
图片截取于中国大学MOOC上视频中的一段
当前面的参数都填完后,或者默认不填,就可以继续填接下来的参数了
表中总结的非常清楚:b是二进制,c是字符串形式,d是十进制...................(和C语言中的%c,%d类似)
就不再累赘了
第二个类似于C语言的写法
简单明了,不需要多的解释,字符串同理
a=1.2345 b=2 str="abcde" print("a=%.2f\n b=%d\n str=%s\n" %(a,b,str))
输出结果如图:
用法和C差不多
要注意的是在后面不能少了%(a,b.....)
第三个字符串格式化输出常用的技巧
a=123 b=456 print(a,b) print(a,b,sep="!!",end="@")
输出如图:注意细节!!!第一个输出后面自带有换行第二个输出后面的换行变成了'@'字符,所以可以通过end来修改
第一个输出两个数字的中间是空格
第二个输出的中间用sep='!!'替换了,同理可用其他的字符代替
-
Merge的用法
2016-04-14 10:54:47Merge的用法 【尊重原创,转载请注明出处】http://blog.chinaunix.net/uid-20649888-id-1629293.html Merge用来从一个表中选择一些数据更新或者插入到另一个表中。而最终是用更新还是用插入的方式取决于该语句...Merge的用法
Merge用来从一个表中选择一些数据更新或者插入到另一个表中。而最终是用更新还是用插入的方式取决于该语句中的条件。
下面我们简单的举一个例子:
提交完成。SQL> create table merge_test1(a number,b varchar2(20)) 表已创建。 SQL> create table merge_test2(a number,b varchar2(20)) 表已创建。 SQL> insert into merge_test1 values(1,'A'); 已创建 1 行。 SQL> insert into merge_test1 values(2,'B'); 已创建 1 行。 SQL> insert into merge_test1 values(3,'C'); 已创建 1 行。 SQL> insert into merge_test2 values(3,'C'); 已创建 1 行。 SQL> insert into merge_test2 values(2,'C'); 已创建 1 行。 SQL> commit;
SQL> select * from merge_test1; A B ---------- -------------------- 1 A 2 B 3 C SQL> select * from merge_test2; A B ---------- -------------------- 3 C 2 C
前面的准备工作之后,用Merge对 Merge_test2进行更新
更新后结果:MERGE INTO MERGE_TEST2 M USING MERGE_TEST1 N ON (M.A = N.A) WHEN MATCHED THEN UPDATE SET M.B = N.B WHEN NOT MATCHED THEN INSERT (M.A,M.B) VALUES (N.A,N.B);
总结:SQL> select * from merge_test2; A B ---------- -------------------- 1 A 3 C 2 B
一、Merge 的用法大致上有三种:
1、只更新不插入
2、只插入不更新Merge into Merge_test2 M Using Merge_test1 N ON (M.A = N.A) WHEN MATCHED THEN UPDATE SET M.B = N.B;
3、既插入也更新MERGE INTO merge_test2 M USING merge_test1 N ON (M.A =N.A) WHEN NOT MATCHED THEN INSERT (M.A,M.B) VALUES(N.A,N.B);
二、注意事项MERGE INTO merge_test2 M USING merge_test1 N ON(M.A = N.A) WHEN MATCHED THEN UPDATE SET M.B=N.B WHEN NOT MATCHED THEN INSERT (M.A,M.B) VALUES(N.A,N.B)<span style="font-family: Arial; background-color: rgb(255, 255, 255);"> </span>
1、merge语句中,update不能用于更新连接的列(即ON(M.A = N.A))
例如:
我们执行上面的语句(注意红色部分)就会有如下的提示:MERGE INTO merge_test2 M USING merge_test1 N ON(M.A = N.A) WHEN MATCHED THEN UPDATE SET M.A=N.B ,M.B=N.B WHEN NOT MATCHED THEN INSERT (M.A,M.B) VALUES(N.A,N.B)
第 3 行出现错误:
ORA-38104: 无法更新 ON 子句中引用的列: "M"."A"
2、Using 后面不一定是表:
语法文档上写着:table,view,subquery
也就是说也可以是一个查询语句的结果集。
3、还有一种错误就是由于关联的值不唯一引起的
比如:
在merge_test1中再插入一条数据。与之前的重复了!
SQL> insert into merge_test1 values(3,'d');
此时我们执行
第 1 行出现错误:MERGE INTO merge_test2 M USING merge_test1 N ON(M.A = N.A) WHEN MATCHED THEN UPDATE SET M.B=N.B WHEN NOT MATCHED THEN INSERT (M.A,M.B) VALUES(N.A,N.B)
ORA-30926: 无法在源表中获得一组稳定的行 -
PyTorch中view的用法
2018-08-22 20:14:11相当于numpy中resize()的功能,但是用法可能不太一样。 我的理解是: 把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其他维度的tensor。... -
AVPlayer的用法
2017-07-21 16:57:15AVPlayer的用法基本概念:AVPlayer的组成: AVPlayer AVPlayerItem AVPlayerLayer AVPlayer:控制播放过程,相当于ViewController AVPlayerItem:提供播放的资源,相当于Model AVPlayerLayer: 显示播放的... -
qDebug的用法
2018-01-15 11:54:13qDebug用于在控制台输出调试信息,主要有以下几种用法。 1、类似c++的cout函数 QString str="world"; qDebug()"hello "str"!"endl; 注:此处endl起到的作用有两个: a、等同于\n换行 b、刷新缓冲区,将缓冲区... -
DataFrame的copy的用法
2018-10-12 22:11:26当deep=false相当于引用,原值改变复制的结果随着改变。 data=DataFrame.copy(deep=True) 等价于 data=DataFrame 假设有DataFrame: data.loc[["a"],["0"]]=11 x=data.copy(deep=False) dat..... -
synchronize的用法
2017-10-30 14:52:55一般关键词synchronized的用法 指定加锁对象:对给定对象加锁,进入同步代码前需要获得给定对象的锁。直接作用于实例方法:相当于对当前实例加锁,进入同步代码前要获得当前实例的锁。直接作用于静态方法:相当于对... -
C++ sort排序函数用法
2017-07-27 21:35:06最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快... 2、它使用的排序方法是类似于快排的方法,时间复 -
fprintf与vfprintf的区别于用法
2014-03-03 19:22:26先看下两个函数的声明方式: #include int fprintf(FILE *fp, const *format, ...); 成功则输出字符数,出错为负值 #include #include int vfprintf(FILE *fp, const char *format, va_list arg); ... -
MySQL中ESCAPE关键字的用法
2020-10-19 00:06:52转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。 MySQL中,转义字符以“\”开头,编程中常见的转义字符,在MySQL均是... -
python中的del用法
2018-03-28 18:45:11python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题。python的del不同于C的free和C++的delete。由于python都是引用,而python有GC机制,所以,del语句作用在... -
sscanf的用法
2018-09-18 11:00:05sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。 sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。 sscanf: 原型: ... -
mwArray的用法
2017-04-14 09:40:59mwArray的用法 标签: C++和MATLAB混合编程 2015-12-07 10:35 551人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: C++学习 mwArray mwArray :C++用它向MATLAB传递输 i/o 参数。... -
UICollectionReusableView的用法
2017-03-31 09:49:19UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。 使用UICollectionView 必须... -
QTSingleApplication的用法
2017-07-10 10:08:24最近研究代码遇到QTSingleApplication,于是上网查了一下其用法,发现其功能还蛮好的,总结一下以备后续使用。 QTSingleApplication,是Qt官方提供的,用于实现应用程序只启动一个实例,并在启动时向另一个实例通信... -
TRIM的用法
2018-04-08 12:45:00虽然平常用的比较多,但还是有些用法没有细究过。 1.TRIM可以带语义型参数 TRIM(str1),表示去掉两边空格 TRIM(leading str2 from str1),去掉str1左边的str2,相当于LTRIM(str1,str2) TRIM(trailing str2 ... -
11.24sum于count的区别,case when的用法以及group by的注意事项 又是努力学习Mysql的一天
2020-11-26 20:01:34case when的用法 以及group by的使用注意事项。 聚合函数sum 与 count的区别 sum指的是和 count指的是计数 也就意味着与case when连用时,sum计算的是符合条件项,count不论符不符合条件只要部位null就会计数1个。 ... -
mysql类似于oracle的decode的一种用法
2015-12-16 13:17:31例如orcale的这样的一个sql句子: select * from (表) where id in('4538862','4588585','4883586','4883582','4993555','4993421','4993464') order by decode(id ,'4538862','0','4883585','1','4883586','2... -
Vimdiff的用法
2014-10-09 15:04:18手工做code merge的时候,经常...Vim的diff模式是依赖于diff命令的。 Vimdiff的基本用法就是: # vimdiff FILE_LEFT FILE_RIGHT 或者 # vim -d FILE_LEFT FILE_RIGHT 屏幕被垂直分割,左右两侧分别显示被比较 -
javascript中的define用法
2017-09-13 08:50:58最近由于工作需求只能快速学习JS,但在看代码的时候发现许多东西都有疑问比如说代码刚开始的define关键字的用法,刚好最近看了一篇好文章,分享一下。 1. AMD的由来 前端技术虽然在不断发展之中,却一直没有质的... -
otherwise 的用法
2015-11-05 17:43:30的用法 otherwise 作连词,意为 “ 否则;不然 ” ,相当于 or 或 if not 。如: We’ll go early , otherwise we may not get a seat. ... -
abstract 的用法
2018-02-13 07:59:08abstract(抽象)修饰符,可以修饰类和方法1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承... -
Python 函数的高级用法
2017-06-16 19:57:01在 Python 中,函数的用法可谓是千变万化,只不过我们平日接触的大多是一些基本用法。函数强大之处当然不止于此,它还有很多高级用法 - 高阶函数、闭包、装饰器。。。 前面说过,Python 中的一切皆对象。我们定义的... -
ModelMap的用法
2018-03-09 09:53:12ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。... -
Java 8 stream的详细用法
2019-01-08 23:12:43使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。 特点: 1 . 不是... -
strncpy的用法
2019-02-12 12:07:12strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, const char *src, int n),把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。... -
IFeatureConstruction的用法
2012-03-06 00:19:01IFeatureConstruction的用法 如何构建从游标使用IFeatureConstruction的新功能 本文档发布与适用于ArcGIS 9.3中, 9.2 版本也存在。 总结 本文介绍了如何使现有生产线的功能游标在...