1>.sed删除行首的空格或tab字符。
sed 's/^[ \t]*//g' file
sed 's/^ *//g' file
2>.sed输出字符串:
打印第三行(3表示等号,p表示打印)
sed -n '3p' /etc/passwd
打印2至5行
sed -n '2,5p' /etc/passwd
从第2行开始,每隔3行打印一行
sed -n '2~3p' /etc/passwd
打印最后一行
sed -n '$p' /etc/passwd
打印包含或不包含root的行
sed -n '/root/p' /etc/passwd
sed -n '/root/! p' /etc/passwd
打印包含/bin/bash的行(%regexp%可以不用转义斜杠)
sed -n '\%/bin/bash%p' /etc/passwd
忽略大小写的搜索
sed -n '\%/BIN/bash%Ip' /etc/passwd或sed -n '/\/BIN\/bash/Ip' /etc/passwd
搜索从开始到sshd字符的范围
sed -n '0,/sshd/p' /etc/passwd
3>sed正则表达式的介绍:
char
只匹配本身char
*
匹配之前字符的0个或更多
+
与*相比,只是匹配1个或更多
?
匹配前面字符的0个或1个
{i}
匹配前面字符的i个,i是整数
{i,j}
匹配前面字符的i至j个,包含i和j
{i,}
匹配前面字符的i个或i个以上
(regexp)
分组字符,两个作用1、(abcd)*会搜索0个或多个abcd字符,abcd是作为一个整体2、作为反向引用,可以使用1 2等引用。
.
匹配任何字符,包括换行符
^
匹配行的开始
$
匹配行的结束
[list]
匹配list中的任单字符,如l,i,s,t
[^list]
反向匹配l,i,s,t
regexp1|regexp2
匹配regexp1或者regexp2
regexp1regexp2
匹配regexp1与regexp2连接
n
匹配换行字符
char
匹配特殊字符,如$, *, ., [, , ,^
4>sed参数详解:
-e<script>或—expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或—file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或—help 显示帮助。
-n或—quiet或--silent 仅显示script处理后的结果。
-V或—version 显示版本信息。
5>sed常用命令:
q
退出命令,sed '11 q' /etc/passwd 相当于head /etc/passwd
d
删除命令,sed '1 d' /etc/passwd 删除第一行
p
打印命令,一般与-n选项连用
6>替换命令s:
命令的格式为:s/regexp/replacement/flags
把root替换成rooter
sed 's/root/rooter/' /etc/passwd
replacement可以是n(n为1到9的数字),表示引用regexp里的(matching):如
echo "123abc" | sed 's/([0-9]*).*/1/’
([0-9]*).*匹配了123abc,而([0-9]*)匹配123,所以1内容为123,所以这个例子的结果为123。
flags的可选值如下:
g
将replacement应用于所有reqexp所匹配的,不仅仅是第一个的匹配。
number
只替换第n个的匹配
p
当替换已经完成,打印新的结果
w file-name
当替换完成,把新结果保存到文件
I
i
忽略大小写。
7>不常用的几个命令:
y/source-chars/dest-chars/
source-chars与dest-chars长度要相同,转换是一一对应的,如a转换成A,b转换成B:sed ‘y/ab/AB/’
a
text
在指定位置增加内容,如在含有root下一行增加I am root:
sed ‘/root/ aI am root’ /etc/passwd
i
text
在指定位置插入内容,如在含有root上一行增加I am root:
sed ‘/root/ iI am root’ /etc/passwd
c
text
用text替换匹配的行,如把含有root的行内容替换为I am root:
sed ‘/root/ cI am root’ /etc/passwd
=
打印行号,如显示含有root所在的行号:sed -n ‘/root/=’ /etc/passwd
l n
以n个长度分割匹配到的行,并以结尾,如以长度为4个字符分隔含有root的行:sed ‘/root/ l 4′ /etc/passwd
r filename
读取文件到输出,如在含有root的行下面插入file文件:sed ‘/root/r file’ /etc/passwd
w filename
保存输出流到文件,如保存含有root的行到file文件:sed ‘/root/w file’ /etc/passwd
N
增加一行并附下一行内容,如两行合并成一行:sed ‘N;s/n//’ /etc/passwd
7>选择性的显示行:
# 显示文件中的前10行 (模拟“head”的行为)
1.sed 10q /etc/passwd
# 显示文件中的第一行 (模拟“head -1”命令)
1.sed q
# 只显示匹配正则表达式的行(模拟“grep”)
1.sed -n '/regexp/p' # 方法1
2. sed '/regexp/!d' # 方法2
# 显示包含“AAA”、“BBB”或“CCC”的行(任意次序)
1.sed '/AAA/!d; /BBB/!d; /CCC/!d' # 字串的次序不影响结果
# 显示包含65个或以上字符的行
1.sed -n '/^.\{65\}/p'
# 显示包含65个以下字符的行
1.sed -n '/^.\{65\}/!p' # 方法1,与上面的脚本相对应
2. sed '/^.\{65\}/d' # 方法2,更简便一点的方法
# 从第3行开始,每7行显示一次
1.sed -n '3~7p' # 只对GNU sed有效
2. sed -n '3,${p;n;n;n;n;n;n;}' # 其他sed
5>插入一行:
插入一行
14. sed ‘3 i/haha‘ a.txt 在第三行的位置插入一行haha
添加一行
15. sed ‘3 a/haha‘ a.txt 在第三行后的位置插入一行haha
替换整行
16. sed ‘3 c/haha‘ a.txt 将第三行整行替换为haha
分享到:
相关推荐
如果需要处理多个文件,sed命令可以结合通配符使用。它还可以在脚本中使用,以支持更复杂的文本操作逻辑。当对sed命令有一定了解后,可以发现其在处理文本文件时能够显著提高工作效率,尤其是在处理日志文件、数据...
标题中的"shell ant sed命令"涉及的是三种在Unix/Linux及类似操作系统中常用的命令行工具,它们在IT领域尤其是软件开发和系统管理中扮演着重要角色。 1. **Shell**:Shell是操作系统提供的一种命令行解释器,允许...
**sed命令详解** **1. sed命令的基本概念** sed(stream editor)是一个强大的文本处理工具,主要用于对文本文件进行非交互式的编辑操作。它的工作方式是逐行读取输入文件,将当前处理的行存储在临时缓冲区(模式...
**sed命令详解** **1. sed命令的基本概念** sed(stream editor)是一个强大的文本处理工具,主要用于对文本文件进行非交互式的编辑操作。它的工作方式是逐行读取输入文件,将当前处理的行存储在临时缓冲区(模式...
2. **处理大文件**:当文件过大时,使用 `vi` 编辑器可能会遇到性能瓶颈,此时 `sed` 可以作为一个轻量级的替代方案,实现快速的数据处理。 3. **规律性文本修改**:对于需要按照一定模式进行替换或修改的任务,如...
#### 一、sed命令基本概念与使用方法 - **sed命令简介**: - `sed` 是一个非交互式的流编辑器(Stream Editor),主要用于自动化文本处理任务,尤其适合处理大型文件或者复杂的编辑需求。 - **非交互性**:意味着`...
Linux 主要shell命令、sed、awk使用详解 Linux 主要shell命令详解 ...总结来说,本章节主要讲述了 shell 的工作原理、shell 的种类、shell 的一般操作及 Bash 的特性,并对 sed 编辑器和 awk 使用进行了详细的讲解。
**sed命令格式解析** 在Linux世界中,sed(stream ...总结,sed命令是Linux系统中强大的文本处理工具,其灵活性和强大功能使其在各种文本操作中都有广泛的应用。熟练掌握sed的使用,能极大地提高日常的文本处理效率。
这三条命令都可以用于获取和之间的结果,sed 命令使用正则表达式匹配和,然后捕获组打印出来。awk 命令使用字段分隔符 |</item> 将文件分隔成多个字段,然后匹配和字段,最后打印出对应的值。 4. 将 a.txt 中第二行...
sed命令可以通过正则表达式指定作用范围,命令的基本结构为: ``` [地址范围]命令[参数] ``` 常见的sed命令包括: - `s` 替换命令,如`s/old/new/`表示替换文本中的old为new。 - `p` 打印命令,用于输出指定行。 -...
- **地址范围**:`sed`允许使用地址范围来指定命令作用的对象。例如,`1,10`表示第一行到第十行之间的内容。 - **规则表达式**:`sed`支持正则表达式,这使得文本匹配和替换变得更加灵活。例如,`/pattern/`用于匹配...
### grep、sed、awk命令实例大练习 在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用...
本人总结出来的,有关sed 脚本的学习,很适合初学者,每条命令都运行过
2. **管道操作**:与其他命令结合使用,如`grep pattern file.txt | sedsed 's/something/else/g'`,先通过`grep`筛选出包含特定模式的行,再用`sedsed`处理它们。 3. **正则表达式**:`sed`支持正则表达式,如`\d`...
例如,将一个文件中的所有“Tom”字符串替换成“John”,只需要一条简单的sed命令即可完成。此外,sed还支持同时执行多个编辑操作,如删除空行、替换字符串和在指定行插入新内容等。 #### 三、sed的功能概述 sed...
先使用`=`命令给每一行加上行号,然后用第二个`sed`命令合并相邻两行,去掉行号的前缀,最后进行右对齐。 **awk**: ``` awk '{i++;printf("%6d%s\n",i,$0)}' ``` 通过变量`i`来给每一行加上行号,并以6个字符宽度...
本文将详细介绍如何使用`sed`命令来替换字符串,并探讨其相关的选项和用法。 ### 基本替换语法 使用`sed`进行字符串替换的基本语法如下: ```bash sed 's/替换的目标字符串/替换后的字符串/' 文件名 ``` 例如,...
在Linux系统中,`sed`命令是一个强大的流编辑器,它可以对输入流(标准输入或文件)中的文本进行各种操作,如替换、删除、插入和提取。`sed`的名称来源于"stream editor"的首字母缩写。它通过读取一行数据到模式空间...
1. **sed命令**: - **查询语句**:`sed`的基本用法是通过模式空间来处理输入的每一行。`-n`选项用来抑制默认的打印行为,`/pattern/p`则会打印匹配到模式的行。例如,`sed -n '/sbin/p' passwd`会查找包含"sbin"的...
sed还支持使用正则表达式,并且可以通过脚本文件执行多条命令。 ### awk、sed、grep结合使用 在实际应用中,这三者常结合使用,以完成更复杂的任务。例如,先用grep筛选出含有"error"的行,再用awk进行格式化: `...