`
不爱不见
  • 浏览: 281557 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sed命令的使用总结

阅读更多
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
0
0
分享到:
评论

相关推荐

    sed命令总结.pdf

    如果需要处理多个文件,sed命令可以结合通配符使用。它还可以在脚本中使用,以支持更复杂的文本操作逻辑。当对sed命令有一定了解后,可以发现其在处理文本文件时能够显著提高工作效率,尤其是在处理日志文件、数据...

    shell ant sed命令

    标题中的"shell ant sed命令"涉及的是三种在Unix/Linux及类似操作系统中常用的命令行工具,它们在IT领域尤其是软件开发和系统管理中扮演着重要角色。 1. **Shell**:Shell是操作系统提供的一种命令行解释器,允许...

    sed命令详解.docx

    **sed命令详解** **1. sed命令的基本概念** sed(stream editor)是一个强大的文本处理工具,主要用于对文本文件进行非交互式的编辑操作。它的工作方式是逐行读取输入文件,将当前处理的行存储在临时缓冲区(模式...

    sed命令.docx

    **sed命令详解** **1. sed命令的基本概念** sed(stream editor)是一个强大的文本处理工具,主要用于对文本文件进行非交互式的编辑操作。它的工作方式是逐行读取输入文件,将当前处理的行存储在临时缓冲区(模式...

    快速理解linux流编辑器sed命令

    2. **处理大文件**:当文件过大时,使用 `vi` 编辑器可能会遇到性能瓶颈,此时 `sed` 可以作为一个轻量级的替代方案,实现快速的数据处理。 3. **规律性文本修改**:对于需要按照一定模式进行替换或修改的任务,如...

    Linux主要shell命令、sed、awk使用详解

    Linux 主要shell命令、sed、awk使用详解 Linux 主要shell命令详解 ...总结来说,本章节主要讲述了 shell 的工作原理、shell 的种类、shell 的一般操作及 Bash 的特性,并对 sed 编辑器和 awk 使用进行了详细的讲解。

    sed命令格式解析.docx

    **sed命令格式解析** 在Linux世界中,sed(stream ...总结,sed命令是Linux系统中强大的文本处理工具,其灵活性和强大功能使其在各种文本操作中都有广泛的应用。熟练掌握sed的使用,能极大地提高日常的文本处理效率。

    使用sed grep工具过滤实例

    对于这些分割符号,我们将使用sed命令将它们替换为换行符,便于后续处理。 ```bash $sed "s/[,,、;|/_;:-]/\n/g" file &gt; file1 ``` ##### 步骤2:去除特殊符号 接下来,使用sed命令逐个去除特殊符号。需要注意...

    sed和awk使用实例

    这三条命令都可以用于获取和之间的结果,sed 命令使用正则表达式匹配和,然后捕获组打印出来。awk 命令使用字段分隔符 |&lt;/item&gt; 将文件分隔成多个字段,然后匹配和字段,最后打印出对应的值。 4. 将 a.txt 中第二行...

    linux中sed的使用

    - **地址范围**:`sed`允许使用地址范围来指定命令作用的对象。例如,`1,10`表示第一行到第十行之间的内容。 - **规则表达式**:`sed`支持正则表达式,这使得文本匹配和替换变得更加灵活。例如,`/pattern/`用于匹配...

    grep,sed,awk命令实例大练习

    ### grep、sed、awk命令实例大练习 在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用...

    sed 命令的学习 文档内容简单易懂

    本人总结出来的,有关sed 脚本的学习,很适合初学者,每条命令都运行过

    sedsed工具

    2. **管道操作**:与其他命令结合使用,如`grep pattern file.txt | sedsed 's/something/else/g'`,先通过`grep`筛选出包含特定模式的行,再用`sedsed`处理它们。 3. **正则表达式**:`sed`支持正则表达式,如`\d`...

    linux系统常用命令sed使用手册

    例如,将一个文件中的所有“Tom”字符串替换成“John”,只需要一条简单的sed命令即可完成。此外,sed还支持同时执行多个编辑操作,如删除空行、替换字符串和在指定行插入新内容等。 #### 三、sed的功能概述 sed...

    sed和awk单行命令比较

    先使用`=`命令给每一行加上行号,然后用第二个`sed`命令合并相邻两行,去掉行号的前缀,最后进行右对齐。 **awk**: ``` awk '{i++;printf("%6d%s\n",i,$0)}' ``` 通过变量`i`来给每一行加上行号,并以6个字符宽度...

    Linux使用sed命令替换字符串教程

    本文将详细介绍如何使用`sed`命令来替换字符串,并探讨其相关的选项和用法。 ### 基本替换语法 使用`sed`进行字符串替换的基本语法如下: ```bash sed 's/替换的目标字符串/替换后的字符串/' 文件名 ``` 例如,...

    sed 用法sed 用法sed 用法

    - `sed -f script_file yel.dat`: 使用脚本文件 `script_file` 中定义的命令来处理 `yel.dat` 文件。 6. **多文件处理**: - `sed -e 's/yellow/blue/g' white.dat red.dat black.dat`: 对多个文件 `white.dat`、...

    linux中sed命令的使用与注意小结

    在Linux系统中,`sed`命令是一个强大的流编辑器,它可以对输入流(标准输入或文件)中的文本进行各种操作,如替换、删除、插入和提取。`sed`的名称来源于"stream editor"的首字母缩写。它通过读取一行数据到模式空间...

    浅谈linux中sed命令和awk命令的使用

    1. **sed命令**: - **查询语句**:`sed`的基本用法是通过模式空间来处理输入的每一行。`-n`选项用来抑制默认的打印行为,`/pattern/p`则会打印匹配到模式的行。例如,`sed -n '/sbin/p' passwd`会查找包含"sbin"的...

Global site tag (gtag.js) - Google Analytics