linux之sed命令详解
1、首先我这边先建一个字母大小转换的脚本test2.sh,内容如下:

3、sed -n还可以打印文件的范围,比如打祥缮乖贝印test2.sh脚本的前两行,我们就可以执行以下命令:s髫潋啜缅ed -n "1,2p" test2.sh,就可以直接打印前两行。sed命令可以打印匹配模式行,比如打印test2.sh脚本匹配tr的行,就可以执行以下命令:sed -n /tr/p test2.sh。remark:如果不带-n的话,除了打印匹配行外,还会打印脚本的全部内容。

4、sed -e的应用。只有当sed命令传递多个编辑命令式,才会使用到-e。比如:我想打印/tr/匹配行,并且打印匹配行所在的行号,此时存在多个sed参数,就要用到-e了。sed -n -e /tr/p -e /tr/= test2.sh每个参数前都要带上-e:



8、sed c\的应用,命令格式为:sed ’指定地址c\替换内容‘ 目标文件。比如,#hello,替换test2.sh脚本的tr这行,可以执行命令:sed '/tr/c\#hello' test2.sh

10、sed替换s应用:格式 sed s/被替换的字符/替换字符/[替换选项]比如,我想把test2.sh中tr替换成大写的tr,则可以执行以下命令:sed ‘s/tr/TR/’test2.sh,则把脚本中的tr替换成TR,完后输出全部内容。如果仅想打印替换所在行,则需要试用使用-n和-p:sed -n ‘s/tr/TR/p’ test2.sh:把脚本中的tr替换成TR,然后打印tr所在的行.如果脚本中存在好几个tr,并且每一行也存在多个tr,如果执行以上命令的话,只会更改每一行的第一个出现的tr,如果要全部把tr转后为TR,则需要添加G参数:sed -n ’S/tr/TR/pg’test2.sh。w参数是定向输入参数,比如要把上述的变更定向输出到test1.txt中,则需要执行:sed -n ’s/tr/TR/pgw test1.txt’ test2.sh。也可以直接把选定的匹配内容写到另一个文本中,比如想把test2.sh中tr这一样写到test2.txt中,执行:sed -n ’/tr/w test2.txt‘ test2.sh