Sed-命令详解

上传人:bei****lei 文档编号:198399488 上传时间:2023-04-08 格式:DOC 页数:19 大小:68.50KB
收藏 版权申诉 举报 下载
Sed-命令详解_第1页
第1页 / 共19页
Sed-命令详解_第2页
第2页 / 共19页
Sed-命令详解_第3页
第3页 / 共19页
资源描述:

《Sed-命令详解》由会员分享,可在线阅读,更多相关《Sed-命令详解(19页珍藏版)》请在装配图网上搜索。

1、Sed 命令详解1.sed-n2pfilename打印文件的第二行。2.sed-n1,3pfilename打印文件的1到3行3.sed-n/Neave/pfilename打印匹配Neave的行(模糊匹配)4.sed-n4,/The/pfilename在第4行查询模式The5.sed-n1,$pfilename打印整个文件,$表示最后一行。6.sed-n/.*ing/pfilename匹配任意字母,并以ing结尾的单词(点号不能少)7sed-n/-e/music/=filename打印匹配行的行号,-e会打印文件的内容,同时在匹配行的前面标志行号。-n只打印出实际的行号。8.sed-n-e/mu

2、sic/p-e/music/=filename打印匹配的行和行号,行号在内容的下面9.sed/company/aThensuddenlyithappendfilename选择含有company的行,将后面的内容Thensuddenlyithappend加入下一行。注意:它并不改变文件,所有操作在缓冲区,如果要保存输出,重定向到一个文件。10.sed/company/iThensuddenlyithappendfilename同9,只是在匹配的行前插入11.sed/company/cThensuddenlyithappendfilename用Thensuddenlyithappend替换匹配co

3、mpany的行的内容。12.sed1d(1,3d$d/Neave/d)filename删除第一行(1到3行,最后一行,匹配Neave的行)13.address,addresss/pattern-to-find/replacement-pattern/gpwns选项通知sed这是一个替换操作,并查询pattern-to-find,成功后用replacement-pattern替换它。替换选项如下:g缺省情况下只替换第一次出现模式,使用g选项替换全局所有出现模式。p缺省sed将所有被替换行写入标准输出,加p选项将使-n选项无效。-n选项不打印输出结果。w文件名使用此选项将输出定向到一个文件。(注意

4、只将匹配替换的行写入文件,而不是整个内容)14.seds/nurse/hello&/filename将hello增加到nurse的前面。15.sed/company/rappend.txtfilename在匹配company的行的下一行开始加入文件append.txt的内容。16.sed/company/qfilename首次匹配company后就退出sed程序只所以看sed命令,是因为我遇到了这个一个问题。网上有很多教程,他们发表了很多程序代码,但是作者为了解释方便,都对程序作了行号编码,就像下面这样:代码:1:#!/bin/bash2:#renamefileextesions3:#4:#r

5、feold_extensionsnew_extension假设这个文件名是tmp,那么我们可以使用下面的命令来去掉这个行号和冒号(:)代码:sed-es/0-91,:/gtmp不过上面的命令的命令有一个缺点,那就是如果这个行号不是数字开头,而是有空格的话,那就需要修改匹配规则,规则应该修改为匹配第一个非空白字符是数字开始,后面接一个冒号的配对。命令如下:代码:sed-es/0-9a-zA-Z*0-91,:/gtmp这令我很兴奋,于是想看看sed到底有多厉害,看了以后,明白的是不是sed有多厉害,就像awk一样,他们只是把正规表达式用到了极致。以Redhat6.0为测试环境事实上在solaris

6、下的sed命令要比linux强,但因为没有测试环境,我这里只给在linux下经过测试的用法。命令行参数简介首先假设我们有这样一个文本文件sedtest.txt输出指定范围的行p在每一行前面增加一个制表符(I)在每一行后面增加-end显示指定模式匹配行的行号/pattern/=在匹配行后面增加文本/pattern/a或者addressa删除匹配行/pattern/d或者address1,address2d替换匹配行/pattern/c或者address1,address2c在匹配行前面插入文本/pattern/i或者addressi替换匹配串(注意不再是匹配行)addr1,addr2s/old/

7、new/g限定范围后的模式匹配指定替换每一行中匹配的第几次出现&代表最后匹配利用sed修改PATH环境变量测试并提高sed命令运行效率指定输出文件address1,address2woutputfile指定输入文件addressrinputfile替换相应字符address1,address2y/old/new/!号的使用c正则表达式c的使用sed命令中正则表达式的复杂性转换man手册成普通文本格式(新)sed的man手册(用的就是上面的方法)命令行参数简介sed-escript指定sed编辑命令-fscriptfile指定的文件中是sed编辑命令-n寂静模式,抑制来自sed命令执行过程中的冗

8、余输出信息,比如只显示那些被改变的行。不明白?不要紧,把这些肮脏丢到一边,跟我往下走,不过下面的介绍里不包括正则表达式的解释,如果你不明白,可能有点麻烦。首先假设我们有这样一个文本文件sedtest.txtcatsedtest.txtSedisastreameditor-Astreameditorisusedtoperformbasictexttransformationsonaninputstream-Whileinsomewayssimilartoaneditorwhichpermitsscriptededits(suchased),-sedworksbymakingonlyonepass

9、overtheinput(s),andisconsequentlymore-efficient.Butitissedsabilitytofiltertextinapipelinewhichparticularly-输出指定范围的行pothertypesofeditors.sed-e1,4p-nsedtest.txtsed-e/from/p-nsedtest.txtsed-e1,/from/p-nsedtest.txt在每一行前面增加一个制表符(I)seds/I/gsedtest.txt注意I的输入方法是ctrl-vctrl-i单个表示行首在每一行后面增加-endseds/$/-end/gsed

10、test.txt单个$表示行尾显示指定模式匹配行的行号/pattern/=sed-e/is/=sedtest.txt1Sedisastreameditor-3Astreameditorisusedtoperformbasictexttransformationsonaninputstream-Whileinsomewayssimilartoaneditorwhichpermitsscriptededits(suchased),-7sedworksbymakingonlyonepassovertheinput(s),andisconsequentlymore-9efficient.Butitis

11、sedsabilitytofiltertextinapipelinewhichparticularly-意思是分析sedtest.txt,显示那些包含is串的匹配行的行号,注意11行中出现了is字符串这个输出是面向stdout的,如果不做重定向处理,则不影响原来的sedtest.txt在匹配行后面增加文本/pattern/a或者addressaDsed-fsedadd.scriptsedtest.txtSedisastreameditorAstreameditorisusedtoperformbasictexttransformationsonaninputstreamWhileinsomew

12、ayssimilartoaneditorwhichpermitsscriptededits(suchased),-sedworksbymakingonlyonepassovertheinput(s),andisconsequentlymore-efficient.Butitissedsabilitytofiltertextinapipelinewhichparticularly-scz/home/scz/srcsed-ea+-找到包含from字符串的行,在该行的下一行增加+。这个输出是面向stdout的,如果不做重定向处理,则不影响原来的sedtest.txt很多人想在命令行上直接完成这个操作

13、而不是多一个sedadd.script,不幸的是,这需要用?nbsp;?nbsp;续行符,scz/home/scz/srcsed-e/from/a+sedtest.txtscz/home/scz/srcsed-ea+sedtest.txt上面这条命令将在所有行后增加一个新行+scz/home/scz/srcsed-e1a+sedtest.txt把下面这两行copy/paste到一个shell命令行上,效果一样+sedtest.txtaddressa只接受一个地址指定对于a命令,不支持单引号,只能用双引号,而对于d命令等其他命令,同时删除匹配行/pattern/d或者address1,addre

14、ss2dsed-e/-/dsedtest.txtSedisastreameditorAstreameditorisusedtoperformbasictexttransformationsonaninputstreamWhileinsomewayssimilartoaneditorwhichpermitsscriptededits(suchased),sedworksbymakingonlyonepassovertheinput(s),andisconsequentlymoreefficient.Butitissedsabilitytofiltertextinapipelinewhichpar

15、ticularlysed-e6,10dsedtest.txt删除6-10行的内容,包括6和10sed-e2dsedtest.txt删除第2行的内容sed1,/$/dsedtest.txt删除从第一行到第一个空行之间的所有内容注意这个命令很容易带来意外的结果,当sedtest.txt中从第一行开始并没有空行,则sed删?nbsp;?nbsp;sed1,/from/dsedtest.txt删除从第一行到第一个包含from字符串的行之间的所有内容,包括第一个包含from字符串的行。替换匹配行/pattern/c或者address1,address2csed-e/is/c*sedtest.txt寻找所

16、有包含is字符串的匹配行,替换成*-*-Whileinsomewayssimilartoaneditorwhichpermitsscriptededits(suchased),-*-*-sed-e1,11c*sedtest.txt-在1-12行内搜索所有from字符串,分别替换成*字符串限定范围后的模式匹配sed/But/s/is/are/gsedtest.txt对那些包含But字符串的行,把is替换成aresed/is/s/t/T/sedtest.txt对那些包含is字符串的行,把每行第一个出现的t替换成Tsed/While/,/from/psedtest.txt-n输出在这两个模式匹配行之

17、间的所有内容指定替换每一行中匹配的第几次出现seds/is/are/5sedtest.txt把每行的is字符串的第5次出现替换成are&代表最后匹配seds/$/(&)/sedtest.txt给所有空行增加一对()seds/is/(&)/gsedtest.txt给所有is字符串外增加()seds/.*/(&)/sedtest.txt给所有行增加一对()sed/is/s/.*/(&)/sedtest.txt给所有包含is字符串的行增加一对()利用sed修改PATH环境变量先查看PATH环境变量scz/home/scz/srcecho$PATH/usr/bin:/usr/bin:/bin:/usr

18、/local/bin:/sbin:/usr/sbin:/usr/X11R6/bin:.去掉尾部的:/usr/X11R6/bin:.scz/home/scz/srcecho$PATH|seds/(.*):/usr/X11R6/bin:.$/1/usr/bin:/usr/bin:/bin:/usr/local/bin:/sbin:/usr/sbin去掉中间的:/bin:scz/home/scz/srcecho$PATH|seds/(.*):/bin:(.*)$/12/usr/bin:/usr/bin/usr/local/bin:/sbin:/usr/sbin:/usr/X11R6/bin:./表示

19、/失去特殊意义/同样表示/失去意义1表示子匹配的第一次出现2表示子匹配的第二次出现(.*)表示子匹配去掉尾部的:,然后增加新的路径PATH=echo$PATH|seds/(.*):$/1/:$HOME/src注意反引号和单引号的区别。测试并提高sed命令运行效率timesed-n1,12pwebkeeper.db/dev/nulltimesed12qwebkeeper.db/dev/null可以看出后者比前者效率高。addressq当碰上指定行时退出sed执行指定输出文件address1,address2woutputfilesed1,10wsed.outsedtest.txt-n将sedte

20、st.txt中1-10行的内容写到sed.out文件中。指定输入文件addressrinputfilesed1rsedappend.txtsedtest.txt将sedappend.txt中的内容附加到sedtest.txt文件的第一行之后替换相应字符address1,address2y/old/new/sedy/abcdef/ABCDEF/sedtest.txt将sedtest.txt中所有的abcdef小写字母替换成ABCDEF大写字母。!号的使用sed-e3,7!dsedtest.txt删除3-7行之外的所有行sed-e1,/from/!dsedtest.txt找到包含from字符串的行

21、,删除其后的所有行c正则表达式c的使用sed-e:from:dsedtest.txt等价于sed-e/from/dsedtest.txtsed命令中正则表达式的复杂性catsedtest.txt/.*($)D如何才能把该行替换成($)/.*转换man手册成普通文本格式(新)mansed|col-bsed.txtsed-es/H/g-e/$/d-es/I/g-es/I/gsed.txtsedmantxt删除所有退格键、空行,把行首的制表符替换成8个空格,其余制表符替换成一个空格。sed的man手册(用的就是上面的方法)NAMEsed-aStreamEDitorSYNOPSISsed-n-V-qu

22、iet-silent-version-help-escript-expression=script-fscript-file-file=script-filescript-if-no-other-scriptfile.DEscriptIONSedisastreameditor.Astreameditorisusedtoper-formbasictexttransformationsonaninputstream(afileorinputfromapipeline).Whileinsomewayssimilartoaneditorwhichpermitsscriptededits(suchase

23、d),sedworksbymakingonlyonepassovertheinput(s),andisconsequentlymoreefficient.Butitissedsabilitytofiltertextinapipelinewhichparticularlydistinguishesitfromothertypesofeditors.OPTIONSSedmaybeinvokedwiththefollowingcommand-lineoptions:-V-versionPrintouttheversionofsedthatisbeingrunandacopyrightnotice,t

24、henexit.-h-helpPrintausagemessagebrieflysummarizingthesecommand-lineoptionsandthebug-reportingaddress,thenexit.-n-quiet-silentBydefault,sedwillprintoutthepatternspaceattheendofeachcyclethroughthescript.Theseoptionsdisablethisautomaticprinting,andsedwillonlyproduceoutputwhenexplicitlytoldtoviathepcom

25、mand.-escript-expression=scriptAddthecommandsinscripttothesetofcommandstoberunwhileprocessingtheinput.-fscript-file-file=script-fileAddthecommandscontainedinthefilescript-filetothesetofcommandstoberunwhileprocessingtheinput.Ifno-e,-f,-expression,or-fileoptionsaregivenonthecommand-line,thenthefirstno

26、n-optionargumentonthecommandlineistakentobethescripttobeexecuted.Ifanycommand-lineparametersremainafterprocessingtheabove,theseparametersareinterpretedasthenamesofinputfilestobeprocessed.Afilenameof-referstothestandardinputstream.Thestandardinputwillpro-cessedifnofilenamesarespecified.CommandSynopsi

27、sThisisjustabriefsynopsisofsedcommandstoserveasaremindertothosewhoalreadyknowsed;otherdocumenta-tion(suchasthetexinfodocument)mustbeconsultedforfullerdescriptions.Zero-addresscommands:labelLabelforbandtcommands.#commentThecommentextendsuntilthenextnewline(ortheendofa-escriptfragment).Theclosingbrack

28、etofablock.Zero-orOne-addresscommands=Printthecurrentlinenumber.atextAppendtext,whichhaseachembeddednewlinepre-ceededbyabackslash.itextInserttext,whichhaseachembeddednewlinepre-ceededbyabackslash.qImmediatelyquitthesedscriptwithoutprocessinganymoreinput,exceptthatifauto-printisnotdiabledthecurrentpa

29、tternspacewillbeprinted.rfilenameAppendtextreadfromfilename.CommandswhichacceptaddressrangesBeginablockofcommands(endwitha).blabelBranchtolabel;iflabelisomitted,branchtoendofscript.tlabelIfas/hasdoneasuccessfulsubstitutionsincethelastinputlinewasreadandsincethelasttcommand,thenbranchtolabel;iflabeli

30、somitted,branchtoendofscript.ctextReplacetheselectedlineswithtext,whichhaseachembeddednewlinepreceededbyabackslash.dDeletepatternspace.Startnextcycle.DDeleteuptothefirstembeddednewlineinthepat-ternspace.Startnextcycle,butskipreadingfromtheinputifthereisstilldatainthepat-ternspace.hHCopy/appendpatter

31、nspacetoholdspace.gGCopy/appendholdspacetopatternspace.xExchangethecontentsoftheholdandpatternspaces.lListoutthecurrentlineinavisuallyunambigu-ousform.nNRead/appendthenextlineofinputintothepatternspace.pPrintthecurrentpatternspace.PPrintuptothefirstembeddednewlineofthecur-rentpatternspace.s/regexp/r

32、eplacement/Attempttomatchregexpagainstthepatternspace.Ifsuccessful,replacethatportionmatchedwithreplacement.Thereplacementmaycontainthespe-cialcharacter&torefertothatportionofthepatternspacewhichmatched,andthespecialescapes1through9torefertothecorrespondingmatchingsub-expressionsintheregexp.wfilenam

33、eWritethecurrentpatternspacetofile-name.y/source/dest/Transliteratethecharactersinthepatternspacewhichappearinsourcetothecorrespondingcharac-terindest.AddressesSedcommandscanbegivenwithnoaddresses,inwhichcasethecommandwillbeexecutedforallinputlines;withoneaddress,inwhichcasethecommandwillonlybeexecu

34、tedforinputlineswhichmatchthataddress;orwithtwoaddresses,inwhichcasethecommandwillbeexecutedforallinputlineswhichmatchtheinclusiverangeoflinesstartingfromthefirstaddressandcontinuingtothesec-ondaddress.Threethingstonoteaboutaddressranges:thesyntaxisaddr1,addr2(i.e.,theaddressesaresepa-ratedbyacomma)

35、;thelinewhichaddr1matchedwillalwaysbeaccepted,evenifaddr2selectsanearlierline;andifaddr2isaregexp,itwillnotbetestedagainstthelinethataddr1matched.Aftertheaddress(oraddress-range),andbeforethecom-mand,a!maybeinserted,whichspecifiesthatthecom-mandshallonlybeexecutediftheaddress(oraddress-range)doesnot

36、match.Thefollowingaddresstypesaresupported:numberMatchonlythespecifiedlinenumber.firststepMatcheverystepthlinestartingwithlinefirst.Forexample,sed-n12pwillprintalltheodd-numberedlinesintheinputstream,andtheaddress25willmatcheveryfifthline,startingwiththesecond.(ThisisaGNUextension.)$Matchthelastline

37、./regexp/Matchlinesmatchingtheregularexpressionregexp.cregexpcMatchlinesmatchingtheregularexpressionregexp.Thecmaybeanycharacter.RegularexpressionsPOSIX.2BREsshouldbesupported,buttheyarentcom-pletelyyet.Thensequenceinaregularexpressionmatchesthenewlinecharacter.TherearealsosomeGNUextensions.XXXFIXME

38、:moreneedstobesaid.Attheveryleast,areferencetoanotherdocumentwhichdescribeswhatissupportedshouldbegiven.MiscellaneousnotesThisversionofsedsupportsasequenceinallregularexpressions,thereplacementpartofasubstitute(s)command,andinthesourceanddestpartsofatransliterate(y)command.Theisstripped,andthenewlin

39、eiskept.SEEALSOawk(1),ed(1),expr(1),emacs(1),perl(1),tr(1),vi(1),regex(5)well,oneoughttobewritten.XXX,sed.info,anyofvariousbooksonsed,thesedFAQ(http:/www.wollery.demon.co.uk/sedtut10.txt,http:/www.ptug.org/sed/sedfaq.htm).BUGSE-mailbugreportstobug-gnu-utilsgnu.org.Besuretoincludethewordsedsomewherei

40、ntheSubject:field.Sed学习笔记-TableofContents1.Sed简介2.定址3.Sed命令4.选项5.元字符集6.实例7.脚本1.Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed3.02。2.定址可以通过定址来

41、定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定。3.Sed命令调用sed命令有两种形式:sedoptionscommandfile(s)sedoptions-fscriptfilefile(s)a在当前行后面加入一行文本。blable分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。c用新的文本改变本行的文本。d从模板块(Patternspace)位置删除行。D删除模板块的第一行。i在当前行上面插入文本。h拷贝模

42、板块的内容到内存中的缓冲区。H追加模板块的内容到内存中的缓冲区g获得内存缓冲区的内容,并替代当前模板块中的文本。G获得内存缓冲区的内容,并追加到当前模板块文本的后面。l列表不能打印字符的清单。n读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。N追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。p打印模板块的行。P(大写)打印模板块的第一行。q退出Sed。rfile从file中读行。tlabelif分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。Tlabel错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致

43、分支到带有标号的命令处,或者到脚本的末尾。wfile写并追加模板块到file末尾。Wfile写并追加模板块的第一行到file末尾。!表示后面的命令对所有没有被选定的行发生作用。s/re/string用string替换正则表达式re。=打印当前行号码。#把注释扩展到下一个换行符以前。以下的是替换标记g表示行内全面替换。p表示打印行。w表示把行写入一个文件。x表示互换模板块中的文本和缓冲区中的文本。y表示把一个字符翻译为另外的字符(但是不用于正则表达式)4.选项-ecommand,-expression=command允许多台编辑。-h,-help打印帮助,并显示bug列表的地址。-n,-quie

44、t,-silent取消默认输出。-f,-filer=script-file引导sed脚本文件名。-V,-version打印版本和版权信息。5.元字符集锚定行的开始如:/sed/匹配所有以sed开头的行。$锚定行的结束如:/sed$/匹配所有以sed结尾的行。.匹配一个非换行符的字符如:/s.d/匹配s后接一个任意字符,然后是d。*匹配零或多个字符如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。匹配一个指定范围内的字符,如/Ssed/匹配sed和Sed。匹配一个不在指定范围内的字符,如:/A-RT-Zed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。(.)保存匹配的字符,

45、如s/(love)able/1rs,loveable被替换成lovers。&保存搜索字符用来替换其他字符,如s/love/*&*/,love这成*love*。锚定单词的开始,如:/锚定单词的结束,如/love/匹配包含以love结尾的单词的行。xm重复字符x,m次,如:/05/匹配包含5个o的行。xm,重复字符x,至少m次,如:/o5,/匹配至少有5个o的行。xm,n重复字符x,至少m次,不多于n次,如:/o5,10/匹配5-10个o的行。6.实例删除:d命令$sed2dexample-删除example文件的第二行。$sed2,$dexample-删除example文件的第二行到末尾所有行。

46、$sed$dexample-删除example文件的最后一行。$sed/test/dexample-删除example文件所有包含test的行。替换:s命令$seds/test/mytest/gexample-在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。$sed-ns/test/mytest/pexample-(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。$seds/192.168.0.1/&localhost/example-&符号表示替换换字符串中被

47、找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加localhost,变成192.168.0.1localhost。$sed-ns/(love)able/1rs/pexample-love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。$seds#10#100#gexample-不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。选定行的范围:逗号$sed-n/test/,/check/pexample-所有在模板test和check所确定的范围内的行都被打印。$sed-n5,/test/pexample-打印从第五行开始到第一个包含以

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!