Sed是用来处理流字串的命令
sed介绍:
sed -- stream editor 对文件或者某种输入字串进行处理。 根据我使用sed和awk这两个命令,个人感觉sed是专门用来处理文本行的,awk的话可以对sed做不到的地方进行扩展,如果有错误的地方谢谢指正。
sed语法结构:
sed [-Ealn] command [file ...] sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]
sed参数和结构:
-e 用来使用多个命令的参数
-n 不输出任何东西除非找到需要输出的东西
-f 用来跟文件类型的脚本
-v 查看版本
-h –hlep
-p 通过正则标准化输出
在 ‘/[addr1]/[addr2]’[addr1] 可以是s 替换,d 删除等
[addr2]可以为
-r read 读取
-w write 写到某个文件
-i insert 插入
-I Ignore 忽视大小写
-c change a line 改变一行
-g global 全部
sed例子:
- s用来替换字符串
☁ Ch02 [master] ⚡ sed s/Mon/re_Mon/g sedTest
re_Monday
re_Monday
Tuesday
Wed
Thu
Fri
Jason
- -n和-p的使用
☁ Ch02 [master] ⚡ cat sedTest
Monday
Monday
Tuesday
Wed
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed /Mon/p sedTest
Monday
Monday
Monday
Monday
Tuesday
Wed
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed -n /Mon/p sedTest
Monday
Monday
☁ Ch02 [master] ⚡ sed 2,5p sedTest
Monday
Monday
Monday
Tuesday
Tuesday
Wed
Wed
Thu
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed -n 2,5p sedTest
Monday
Tuesday
Wed
Thu
这个能匹配正则表达式,通过正则表达式来显示文件的内容
- -d删除
☁ Ch02 [master] ⚡ sed 1,2d sedTest
Tuesday
Wed
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed /Monday/d sedTest
Tuesday
Wed
Thu
Fri
Jason
-e多条命令
☁ Ch02 [master] ⚡ sed -n -e 2,4p -e 5,6p sedTest
Monday
Tuesday
Wed
Thu
Fri