NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
* [1、创建文件:touch file](https://www.kancloud.cn/chunyu/php_basic_knowledge/1882193#span_stylefontsize15px1touch_filespan_1) * [2、文档编辑:vi/vim fileName](https://www.kancloud.cn/chunyu/php_basic_knowledge/1882193#span_stylefontsize15px2vivim_fileNamespan_6) * [3、文档内容替换: sed \[option\] 'command' file](https://www.kancloud.cn/chunyu/php_basic_knowledge/1882193#span_stylefontsize15px3_sed_option_command_filespan_20) # 1、创建文件:touch file | 命令 | 注释 | | --- | --- | | touch file | 创建file空白文档 | | touch file file2 | 创建file、file2两个空白文档 | # 2、文档编辑:vi/vim fileName > 直接输入**vi 文件名**就能够进入 vi 的一般模式了,按下 i 进入输入模式(也称为编辑模式),开始编辑内容。 > 编辑内容结束后,可按 ESC 键退出编辑模式回到一般模式,在一般模式下,输入`:wq`储存后离开 vi。 | 命令 | 注释 | | --- | --- | | :w | 将编辑的数据写入文件中 | | :w! | 若文件属性为『只读』时,强制写入该档案 | | :q | 离开vi | | :q! | 退出编辑并不保存 | | :wq | 保存并退出编辑 | | ZZ | (大写的Z)若文件未更改,则不储存离开,若文件已更改,则储存后离开 | | :w \[filename\] | 将编辑的数据储存成另一个档案(类似另存新档) | | :r \[filename\] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 | # 3、文档内容替换: sed \[option\] 'command' file > 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 | 打印第一行和最后一行 |