🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # <span style="font-size:15px">1、创建文件:touch file</span> | 命令 | 注释 | | --- | --- | | touch file | 创建file空白文档 | | touch file file2 | 创建file、file2两个空白文档 | # <span style="font-size:15px">2、文档编辑:vi/vim fileName</span> > 直接输入**vi 文件名**就能够进入 vi 的一般模式了,按下 i 进入输入模式(也称为编辑模式),开始编辑内容。 > 编辑内容结束后,可按 ESC 键退出编辑模式回到一般模式,在一般模式下,输入`:wq`储存后离开 vi。 | 命令 | 注释 | | --- | --- | | :w |将编辑的数据写入文件中 | | :w! |若文件属性为『只读』时,强制写入该档案 | |:q |离开vi| |:q!|退出编辑并不保存| |:wq|保存并退出编辑| |ZZ|(大写的Z)若文件未更改,则不储存离开,若文件已更改,则储存后离开| |:w [filename]|将编辑的数据储存成另一个档案(类似另存新档)| |:r [filename]|在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个文件的内容加到游标所在行后面| # <span style="font-size:15px">3、文档内容替换: sed [option] 'command' file</span> > sed 命令是一个面向行处理的工具,对文件内每一行进行处理,并把当前处理的行存储在临时缓冲区中,称为“模式空间”,处理完成后,把缓冲区的内容送往屏幕,直到文件末尾。sed命令默认不会直接修改源文件数据。 > **option:** > * -e :直接在命令行模式上进行sed动作编辑,此为默认选项 > * -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作 > * -i :直接修改文件内容 > * -n :只打印模式匹配的行 > * -r :支持扩展表达式 > > **动作:** > * a:在当前行下面插入文本 > * i: 在当前行上面插入文本 > * c:把选定的行改为新的文本 > * d: 删除,删除选择的行 > * D: 删除模板块的第一行 > * s: 替换指定字符 > * h: 拷贝模板块的内容到内存中的缓冲区 > * H:追加模板块的内容到内存中的缓冲区 > * g: 获得内存缓冲区的内容,并替代当前模板块中的文本; > * G: 获得内存缓冲区的内容,并追加到当前模板块文本的后面; > * l: 列表不能打印字符的清单; > * n: 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令; > * N: 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码; > * p: 打印模板块的行。 P(大写) 打印模板块的第一行; > * q: 退出Sed; > * b: lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾; > * r: file 从file中读行; > * t: label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾; > * T: label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾; > * w: file 写并追加模板块到file末尾; > * W :file 写并追加模板块的第一行到file末尾; > * y:把一个字符翻译为另外的字符 > * x:表示互换模板块中的文本和缓冲区中的文本 | 命令 | 注释 | | --- | --- | | sed 3a\new_line sed.txt |在sed.txt的第三行后添加一行,并将结果输出到标准输出,同 sed -e 3a\new_line sed.txt | |nl sed.txt \| sed '1,2d'|删除sed.txt文件的第一行至第2行,并打印行号输出| |sed '3,$d' sed.txt |删除sed.txt文件的第三行至最后一行| |sed '$d' sed.txt|删除sed.txt最后一行| |sed '2,5c new char' sed.txt|将sed.txt的第二至第五行替换为‘new char’| |sed -n '5,7p' sed.txt|仅输出sed.txt的第五至第七行| |sed -n '/aaa/p' sed.txt|搜索输出有aaa关键字的行| |sed '/aaa/d' sed.txt|搜索并删除带有aaa关键字的行| |sed -i 's/要被取代的字符串/新的字符串/g' sed.txt|数据的搜寻并替换(修改源文件),使用后缀 /g 标记会替换每一行中的所有匹配| |sed -i '2,8s/test/content/g' sed.txt|将sed.txt文件的第二行到第八行的test字符串更改为content| |sed -i '2,8s/#//g' sed.txt|删除sed.txt文件的第二行到第八行的# 字符| |sed '1,2y/as/AS/' sed.txt|把1~2行内所有as转变为大写,注意,正则表达式元字符不能使用这个命令,单个字符 ‘a’ ‘s’也会转换成大写| |sed -n 'p;n' sed.txt 或 sed -n '1~2p' sed.txt| 打印奇数行 | |sed -n 'n;p' sed.txt 或 sed -n '2~2p' sed.txt|打印偶数行| |sed -n '1p,$p' sed.txt|打印第一行和最后一行| |echo -e 'start{total:20},end' \| sed 's/.*{\(.*\)}.*/\1/'| 截取字符串中{}之中的字符串 | ``` [root@izwz91quxhnlkan8kjak5hz ~]# echo -e 'start{total:20},end' | sed 's/.*{\(.*\)}.*/\1/' total:20 ```