sed 在 shell 和编辑器中的用法和选项
1. sed会逐行从文件中读取数据, 再对数据处理后显示到屏幕, 再进行下一行的处理.
sed '4d' file.txt # 删除文件中第4行
sed '2,6d' file.txt # 删除文件中的2-6行
sed '5,$d' file.txt # 从第5行删除到最后一行
sed '/root/d' file.txt # 删除含root字符的行
sed '/root/,5d' file.txt # 前5行中有root则从root行删到第5行, 注意第5行会保留
sed '/root/,+3d' file.txt# 删掉有root行, 并向后删3行.
sed '/root/!d' file.txt # 取反删除, 留下root行
sed '1~2d' file.txt # 删除奇数行, 从1开始, 每隔2行删除
sed '0~2d' file.txt# 删除偶数行, 从0开始, 每隔2行删除
2. sed中的正则使用:
sed同grep命令一样, 默认不支持扩展元字符, 解决办法:
1. 将扩展元字符加对应斜线变为基本元字符.
2. sed -r 加入-r参数, 使其支持扩展元字符.
3. sed的查找替换使用:
替换的使用:
1. sed -r 's/xx/XX/' # 替换xx为XX, 只替换每行的第一个
2. sed -r 's/xx/XX/g' # 替换整行中的所有xx为XX
3. sed -r 's/xx/XX/gi' # 忽略行中内容的大小写进行匹配替换
查找的使用:
1. sed -r '/xx/d' # 查找时不要使用s, 查找xx并删除
4. sed的命令选项 (注意是命令, 在引号中使用的, 注意要和-后的参数区分):
5. sed的功能选项( 即-后的参数值, ):
6. &符合的作用, 就是代表, 代指, 代替的作用
如在vim中需要给3-5行内容注释掉的写法如下:
:3,5 s/\(.*\)/#\1/# 解释, vi中模式识别基本正则元字符, 括号中.*代表整行, 括号两边使用\给转义了, 这正是shell中正则基本元字符的形式
:3,5 s/.*/#&/ # 作用同上, &符合就代替了前面.*, 即整行内容
:% s/.*/#&/ # %表示作用到每一行, &符合就代替了前面.*, 即整行内容
注意&号代表的是前面正则匹配到的内容, 如果匹配到的是行中的一个字符, 则就是在这个字符前加#, 注意区分正则匹配到的到底是什么
:3,5 s/^/#/# 3-5行加注释, 解读: 把3-5行的开始符号替换为#号.
以上在vi中的写法, 在sed命令中用法一模一样, 如下:
sed '3,5s/\(.*\)/#\1/' file.txt # 如果使用-r参数, 则括号两边的转义可去掉, 因为-r参数识别的就是扩展元字符
sed '/root/s///' file.txt# sed也有这种用法, s前面的内容可理解为替换的作用范围, 3,5或者/root/都是, 规定作用行数,或包含root的行
下一篇: CIMV2 命名空间下的类的生硬描述
推荐阅读
-
移位操作函数的应用:circshift、fftshift和ifftshift在matlab中的用法
-
深入解析ipvsadm -L --timeout选项在TCP、TCPFIN和UDP协议中的应用
-
从零开始学全栈开发:在 .NET 中掌握 EF 框架和 LINQ 的用法
-
在 React 中,如何在导航组件间传参:理解 params、search 和 state 的用法
-
在Python 3中玩转 bytes 和 str:基础用法、不同编码间的转换以及列表、元组与字符串之间的互变技巧
-
在Node.js中轻松理解和应用JWT与Session的区别与用法
-
` 自动填充为 `cp test.txt`
- 文件和目录名补全:输入文件名首字母后按 Tab,如 `vi ed
` 显示可用的编辑器列表 - 查看命令帮助: - 使用 `man` 命令配合具体命令名获取详尽帮助,如 `man ls` 或者 `man grep --help`"> 在 Linux 中操作指令指南 - 基本构造与种类 - 指令组成: 1. **主指令 + 选项 + 参数**: 如 `ls -l /home`,`main-action option object` - 内置指令:系统预装的 shell 功能,如 `cd`, `pwd` - 外部指令:独立可执行文件,直接用文件名当作命令,如 `rm`, `mv` - **选项与参数**: - 选项:定制命令行为, `-l` 或 `--long-help` - 短选项:简写形式,例如 `-v` 和 `-V` 可能合并使用 - 长选项:详细描述的选项,如 `--version` 或 `--human-readable` - 参数:命令作用的目标,如 `ls` 对 `/home` 目录的操作 - **指令应用**: - 不同指令需要不同的参数 - 选项可带或不带参数,比如 `grep -i "keyword"` (忽略大小写搜索) - 参数间通常用空格分隔,如 `cp file1 file2 file3` - **中断与完成提示**: - 终止当前指令:按下 Ctrl+C - **自动完成**: - 输入部分命令关键词后,按 Tab 键补全命令,如 `cp ta
` 自动填充为 `cp test.txt` - 文件和目录名补全:输入文件名首字母后按 Tab,如 `vi ed ` 显示可用的编辑器列表 - 查看命令帮助: - 使用 `man` 命令配合具体命令名获取详尽帮助,如 `man ls` 或者 `man grep --help` -
encodeURIComponent 函数在 url 传递参数中的作用和用法
-
for auto 在 C++ 中的用法和说明
-
按位置和 (&) 在 Java 中的用法说明