linux sed 总结

简介: linux sed 总结

1.简介

sed是一种行编辑器,它一次处理一行内容。

2.sed调用方式

sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)

第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。

  • 示例(1):打印hello.txt的内容
sed -n p hello.txt

说明:
-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能
p:命令表示打印当前行
hello.txt:待处理的文件
这个指令相当于cat

3.定址

告诉sed你期望处理的行,由逗号分隔的两个数字表示,$符号表示最后一行;
当然也可以使用正则来定位期望处理的行。

  • 示例(2):打印hello.txt的第二行到最后一行
sed -n '2,$'p hello.txt
  • 示例(3):打印hello.txt中正则匹配"100"的行
sed -n '/100/'p hello.txt 

4.基本命令

hello.txt的内容为

1 2 3
10 20 30
100 200 300
  • 命令:a\
    在匹配行的后面加入一行文本
  • 示例(4)匹配100的行,后面加入一行"new line"
sed '/100/'a\ "new line" hello.txt

输出内容为:

1 2 3
10 20 30
100 200 300
new line
  • 命令:i\
    在匹配行的前面加入一行文本
  • 示例(5)匹配100的行,前面加入一行"new line"
sed '/100/'i\ "new line" hello.txt

输出内容为:

1 2 3
10 20 30
new line
100 200 300
  • 命令:c\
    将匹配行替换为目的行
  • 示例(5)匹配100的行,替换为"new line"
sed '/100/'c\ "new line" hello.txt

输出内容为:

1 2 3
10 20 30
new line
  • 命令:d
    将匹配行删除
  • 示例(5)删除匹配100的行
sed '/100/'d hello.txt

输出内容为:

1 2 3
10 20 30
  • 命令:s
    将匹配行替换

详细命令为:s/pattern-to-find/replacement-pattern/g
pattern-to-find:被替换的串
replacement-pattern:替换成这个串
g:全部替换,默认只替换匹配到的第一个

  • 示例(5)讲100替换为hello
sed 's/100/hello/g' hello.txt 

输出内容为:

1 2 3
10 20 30
hello 200 300

5.元字符集

^:匹配一行的开始
$:匹配一行的结束
.:匹配某个字符
[abc]:匹配指定范围字符

6.实用命令

匹配以10开头的行,并替换为yes,并输出

sed -n 's/^10/yes/p' hello.txt

输出内容为:

yes 20 30
yes0 200 300

取出文件中行手的行号与冒号
设hello.txt的内容为

1:#!/bin/sh
2:cat hello.txt
3:exit

命令:

sed -n -e 's/^[0-9]\{1,\}://g'p hello.txt

输出结果为:

#!/bin/sh
cat hello.txt
exit
目录
相关文章
|
3月前
|
Linux Perl
一个神奇的Linux命令-sed
一个神奇的Linux命令-sed
16 1
|
10月前
|
Unix Linux 测试技术
软件测试|Linux三剑客之sed命令详解
软件测试|Linux三剑客之sed命令详解
105 0
|
3月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
82 1
性能工具之linux三剑客awk、grep、sed详解
|
2月前
|
存储 Linux BI
Linux 三剑客 grep、sed、awk
Linux三剑客`grep`、`sed`和`awk`是强大的文本处理工具。`grep`用正则表达式搜索匹配行;`sed`是流式编辑器,处理文本流而不直接修改原文件;`awk`则用于灵活的文本分析和报告生成。例如,`grep`可查找匹配模式,`sed`可以删除文件内容,而`awk`能提取特定字段。通过组合使用,它们能高效解决复杂文本任务。
37 1
|
1月前
|
存储 Unix Linux
探索Linux中的sed命令:强大的文本处理工具
`sed`是Linux/Unix的流编辑器,用于文本替换、删除、新增等操作,无需直接编辑文件。它逐行处理输入,存储在模式空间,执行脚本后输出。主要特点是非交互、支持正则表达式和简洁语法。示例:`sed 's/apple/orange/g' example.txt`替换文本,`/error/d`删除包含"error"的行,`a\---`在每行后加"---"。使用时注意备份、测试命令和理解正则表达式。
|
2月前
|
Shell Linux Perl
Linux shell脚本sed使用
Linux shell脚本sed使用
29 1
|
3月前
|
Linux Perl
linux sed 替换文件路径
linux sed 替换文件路径
49 0
|
3月前
|
Unix Linux Perl
Linux之sed命令详解
`sed`是一个强大的文本处理工具,通过合理的使用表达式和选项,可以实现对文本的多种操作,如替换、删除、插入等。
26 0
|
11月前
|
移动开发 Unix Linux
sed命令在Mac和Linux下的不同
sed命令在Mac和Linux下的不同
68 0
|
3月前
|
存储 Shell Linux
⭐⭐⭐【Shell 命令集合 文档编辑 】Linux 文件内容处理 sed命令使用指南
⭐⭐⭐【Shell 命令集合 文档编辑 】Linux 文件内容处理 sed命令使用指南
43 0