LINUX命令之sed

本文详细介绍了sed命令的常用选项,如-i进行直接修改、-e执行指令、-n控制输出等。还讲解了编辑命令如a、c、i、d、s以及打印和文件操作的r和w。重点展示了替换功能的语法和多个替换规则的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、sed 命令选项

sed常用选项

-i : 直接在文件上编辑
-e[默认选项]: 只在命令行输出, 而文件不改变

sed 的常用其他选项:

-r: 使用扩展正则表达式
-e: 它告诉 sed 将下一个参数解释为一个 sed 指令, 只有当命令行上给出多个 sed 指令时才需要使用-e 选项
-f: 后跟保存了 sed 指令的文件
-i: 直接对内容进行修改, 不加-i 时默认只是预览
-n: 取消默认输出, sed 默认会输出所有文本内容, 使用-n 参数后只显示处理过的行

sed 中的编辑命令:

a: 追加 向匹配行后面插入内容
c: 更改 更改匹配行的内容
i: 插入 向匹配行前插入内容
d: 删除 删除匹配的内容
s: 替换 替换掉匹配的内容
p: 打印 打印出匹配的内容, 通常与-n 选项和用
=: 用来打印被匹配的行的行号
n: 读取下一行, 遇到 n 时会自动跳入下一行
r,w: 读和写编辑命令, r 用于将内容读入文件, w 用于将匹配内容写入到文件

使用

1. 替换

sed 替换的基本语法为:

sed 's/原字符串/替换字符串/'

特殊字符需要使用反斜线 / 进行转义,单引号" ‘ ’“是没有办法用反斜线”"转义的, 这时候只要把命令中的单引号改为双引号就行了

# 要处理的字符包含单引号
sed "s/原字符串包含'/替换字符串包含'/" 

命令中的三根斜线分隔符可以换成别的符号, 只需要紧跟 s 定义即可。

# 将分隔符换成问号"?":
sed 's? 原字符串? 替换字符串? '

可以在末尾加 g 替换每一个匹配的关键字, 否则只替换每行的第一个, 例如:

# 替换所有匹配关键字
sed 's/原字符串/替换字符串/g'

多个替换可以在同一条命令中执行, 用分号";"分隔, 其格式为:

# 同时执行两个替换规则
sed 's/^/添加的头部&/g; s/$/&添加的尾部/g'

原文链接:https://blog.youkuaiyun.com/wan212000/article/details/128971900

### 回答1: sed是一个强大的文本处理工具,常用于从标准输入或文件中读取文本,进行编辑和转换,并将输出写入标准输出或文件中。 以下是sed常用的命令选项: 1. -n:只显示经过sed编辑的行 2. -i:直接修改文件内容,不输出到终端 3. -e:允许多个命令一起执行 4. -f:从文件中读取sed命令进行处理 以下是sed常用的命令: 1. s:替换。语法为:s/要替换的内容/替换后的内容/g,其中g表示全局替换。 2. p:打印。将指定的行或所有行输出到终端。 3. d:删除。删除指定的行或所有行。 4. a:追加。在指定行后面添加新的内容。 5. i:插入。在指定行前面插入新的内容。 6. w:写入。将指定行写入到文件中。 举例说明: 1. 将文件中的所有"cat"替换为"dog":sed -i 's/cat/dog/g' file.txt 2. 只显示文件中包含“hello”的行:sed -n '/hello/p' file.txt 3. 删除文件中的第3行:sed -i '3d' file.txt 4. 在文件中第2行后面添加一行内容:“hello world”:sed -i '2a hello world' file.txt 5. 将文件中第1行替换为“hello”并保存到另一个文件中:sed '1s/.*/hello/' file.txt > newfile.txt ### 回答2: sed是一种常用的Linux命令,其全称为Stream Editor,用于对文本进行处理和转换。它可以在命令行中以各种方式对文件内容进行修改,包括替换、插入、删除、追加等操作。 sed的基本语法是`s/old/new/`,其中old表示待替换的字符串,new表示替换后的内容。sed命令会读取文件的内容,并对匹配到的old进行替换。如果需要对整个文件进行替换,则需要加上选项`-i`。 除了替换以外,sed还可以实现很多其他的文本操作。例如,通过`d`选项可以删除匹配到的行;通过`i`选项可以在指定行前插入文本;通过`a`选项可以在指定行后追加文本等。 另外,sed命令还可以使用正则表达式来进行模式匹配。通过在替换语句中使用正则表达式,可以对符合特定模式的字符串进行批量替换。 总之,sed是一种非常强大和灵活的文本处理工具,可以方便地对文件内容进行修改和转换,提高工作效率。熟练掌握sed命令可以帮助我们更好地处理和编辑文本文件。 ### 回答3: sed(Stream Editor)是Linux中常用的文本处理工具之一。它可以对文本进行流式编辑,具体操作包括查找、删除、替换、插入行或字符等。 使用sed命令的基本语法为: ``` sed [选项] '动作' 文件名 ``` 其中,选项可以包括: - -n:只显示或处理特定行; - -e:指定要执行的动作; - -f:从指定文件中读取动作。 动作部分可以包括: - 数字n:表示打印第n行; - p:打印匹配行; - d:删除匹配行; - s/old/new/:查找并替换文本; - a\text:在匹配行后插入文本; - i\text:在匹配行前插入文本。 以下是一些常用的sed命令示例: - 打印文件内容: ``` sed 'p' file.txt ``` - 删除匹配行: ``` sed '/pattern/d' file.txt ``` - 查找并替换文本: ``` sed 's/old/new/' file.txt ``` - 打印指定行数: ``` sed -n 'n' file.txt ``` - 在匹配行后插入文本: ``` sed '/pattern/a\text' file.txt ``` - 在匹配行前插入文本: ``` sed '/pattern/i\text' file.txt ``` 通过灵活运用sed命令,我们可以轻松地对文本文件进行各种编辑操作,提高工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值