shell中使用sed处理文本
-
sed命令
其中比较重要的有
^ 表示一行的开头。如:/^#/ 以#开头的匹配。
$ 表示一行的结尾。如:/}$/ 以}结尾的匹配。 \< 表示词首。 如:\<abc 表示以 abc 为首的詞。 \> 表示词尾。 如:abc\> 表示以 abc 結尾的詞。 . 表示任何单个字符。 * 表示某个字符出现了0次或多次。 [ ] 字符集合。 如:[abc] 表示匹配a或b或c,还有 [a-zA-Z] 表示匹配所有的26个字符。如果其中有^表示反,如 [^a] 表示非a的字符 sed命令使用注意
参数 sed -i 选项会直接更改文本的内容 sed -i "/SectorNumer/s/[0-9]\+/
$1/g" data #解释: # 首先匹配含有SectorNumer的那一行 #然后匹配含有数字0-9的数字,这里的\+很重要 #如果不加\+,那么假如$1是3,那么一位数可以正常工作,但是两位数例如75就会被替换为33 #也就是单个数字单个数字的替换了,这就不是我们想要的结果了 在一行刚开始使用井号, s/^/#/g 如果一行是以空格开始才使用井号,s/^ /#/g 这里在 ^ 之后多了个空格