Linux命令-sed指令

server/2025/4/2 7:30:51/

sed命令参数:
基本参数
-n:抑制默认输出,只显示匹配的行。
-e:指定 sed 脚本。
-i:直接修改文件内容。
-f:指定包含 sed 脚本的文件。
-r:启用扩展正则表达式。

常用操作
s:替换字符串。
d:删除行。
i:在指定位置之前插入文本。
a:在指定位置之后追加文本。
p:打印匹配的行。
=:显示行号。
y:字符替换。
g:匹配符合要求的所以关键字

1.替换字符串

# 替换第一行中的 "old" 为 "new"
sed 's/old/new/' file.txt# 替换每一行中的第一个 "old" 为 "new"
sed 's/old/new/' file.txt# 替换每一行中的所有 "old" 为 "new"
sed 's/old/new/g' file.txt

2.删除行

# 删除第3行
sed '3d' file.txt# 删除第3到第5行
sed '3,5d' file.txt# 删除包含 "pattern" 的行
sed '/pattern/d' file.txt

3.插入和追加文本

# 在第3行之前插入 "Insert line"
sed '3i Insert line' file.txt# 在第3行之后追加 "Append line"
sed '3a Append line' file.txt

4.打印匹配的行

# 打印包含 "pattern" 的行
sed -n '/pattern/p' file.txt# 打印第3行
sed -n '3p' file.txt

5.显示行号

# 显示所有行的行号
sed '=' file.txt# 显示包含 "pattern" 的行的行号
sed -n '/pattern=' file.txt

6.字符串替换

# 将所有小写字母转换为大写字母
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file.txt

7.使用正则表达式

# 替换以 "old" 开头的单词为 "new"
sed 's/^old/new/' file.txt# 替换以 "old" 结尾的单词为 "new"
sed 's/old$ /new/' file.txt# 替换包含 "old" 的单词为 "new"
sed 's/\bold\b/new/g' file.txt

8.使用扩展正则表达式

# 使用扩展正则表达式替换 "old" 为 "new"
sed -r 's/(old)/\1new/' file.txt

9.直接修改文件

# 直接修改文件,将所有 "old" 替换为 "new"
sed -i 's/old/new/g' file.txt

http://www.ppmy.cn/server/180650.html

相关文章

Rust 所有权与引用

目录 Rust 所有权原则变量所有权变量作用范围深拷贝 Rust 的引用示例可变引用不可变引用可变引用和不可变引用不能同时存在悬垂引用 Rust 所有权原则 Rust 中每一个值都被一个变量所拥有,该变量被称为值的所有者一个值同时只能被一个变量所拥有,或者说一…

RK3588使用笔记:系统联网配置

一、前言 话不多说,这里会介绍不同系统多种上网方式,有的是通过USB WIFI模块连接wifi信号进行网络通信,有的是通过调试电脑的网络共享,为什么要联网呢,就是为了在线更新驱动,因为离线安装会有很多依赖的问…

Python Cookbook-4.15 字典的一键多值

任务 需要一个字典,能够将每个键映射到多个值上。 解决方案 正常情况下,字典是一对一映射的,但要实现一对多映射也不难,换句话说,即一个键对应多个值。你有两个可选方案,但具体要看你怎么看待键的多个对…

第十五章:Python的Pandas库详解及常见用法

在数据分析领域,Python的Pandas库是一个不可或缺的工具。它提供了高效的数据结构和数据分析工具,使得数据处理变得简单而直观。本文将详细介绍Pandas库的基本功能、常见用法,并通过示例代码演示如何使用Pandas进行数据处理。最后,…

QScreen 捕获屏幕(截图)

一、QScreen核心能力解析 硬件信息获取 // 获取主屏幕对象 QScreen* primaryScreen QGuiApplication::primaryScreen();// 输出屏幕参数 qDebug() << "分辨率:" << primaryScreen->size(); qDebug() << "物理尺寸:" << primar…

Linux线程池实现

1.线程池实现 全部代码&#xff1a;whb-helloworld/113 1.唤醒线程 一个是唤醒全部线程&#xff0c;一个是唤醒一个线程。 void WakeUpAllThread(){LockGuard lockguard(_mutex);if (_sleepernum)_cond.Broadcast();LOG(LogLevel::INFO) << "唤醒所有的休眠线程&q…

Azure SDK 使用指南

​Azure SDK&#xff08;软件开发工具包&#xff09;是一组由微软提供的工具和库&#xff0c;旨在帮助开发者以多种编程语言&#xff08;如 .NET、Java、Python、JavaScript 等&#xff09;与 Azure 服务进行交互。 ​通过使用 Azure SDK&#xff0c;开发者可以更高效地构建、部…

VS2022 Qt 项目使用数据库报错问题

一、问题现象&#xff1a;无法解析的外部符号 "__declspec(dllimport) public: __cdecl QSqlDatabase::QSqlDatabase(void)" 定义变量QSqlDatabase db后报错信息为“无法解析的外部符号” 二 、解决步骤&#xff1a; 1、在 Visual Studio 2022 中&#xff1a;右键项…