Linux中sed命令的使用技巧

一、sed语法介绍

sed命令主要用于文本内容的编辑,默认只处理模式空间,不处理原数据。
命令格式:

复制代码
sed [option] 'command' filename

示例:删除空白行 sed '/^\s*$/d' filename
option 参数:

-n:只有经过sed特殊处理的那一行才会被列出

-e:直接在命令行模式上进行sed的动作编辑

-i:直接修改读取的文件内容,而不是输出到终端

command 参数

a:追加,可以接字符串

i:插入

d:以行为单位删除

c:以行为单位的替换

s:在行中搜索并替换

p:以行为单位的显示

二、实例介绍

2.1在文件file第四行后添加一行

Sed -e 4a\new/ line testline

其中:

-e:直接修改

4:第4行

a:追加

/:空格需要加反斜杠

2.2以行为单位的新增和删除

将testfile的内容列出并且列出行号,同时,将第2-5行删除。

nl testfile | sed '2,5d'

其中:

2,5:2到5

d:删除

nl:列出内容,并标注行号,空白行不标注

只删除第2行

nl testfile | sed '2d'

删除2到最后一行

nl testfile | sed '2,$d'

在第二行后(即第三行)加入hello;

nl testfile | sed '2a hello;'

在第二行前加入

nl testfile | sed '2i hello;'

增加两行以上

nl testfile | sed '2a hello;

hello'

注:必须使用\来进行新行标记

2.3以行为单位的替换和显示

nl testfile | sed '2,5c hello;'

注:将2到5行替换为一行hello

2.4数据的搜索和显示(以此显示行号)

nl testfile | sed -n'hello;'

2.5数据的搜索和删除

nl testfile | sed '/oo/d'

2.6数据的搜寻和执行

nl testfile | sed -n '/oo/{s/oo/kk/;p/q}'

注:找到oo对应行,然后把oo改为kk

其中:p打印,q退出

2.7数据的查找和替换

Sed's/要被取代的字符串/新的字符串/g' testfile

Sed -e's/oo/kk/g' testfile

注:把oo替换为kk,并将该文件输出到标准输出,不修改原文件

-e输出

Sed -e's/oo/kk/' testfile

注:把每行第一次出现的oo替换为kk,并将该文件输出到标准输出,不修改原文件

Sed -i's/oo/kk/g' testfile

注:把oo替换为kk,并将该文件输出到标准输出,修改原文件

Sed -i's/oo/kk/g' .txt

批量操作当前目录下所有.txt后缀文件

三、复杂实例

3.1将t1.txt文件每一行结尾为.则修改为!

Sed -i \s/.$/!/g t1.txt

注.记得加反斜杠

$表示结尾

相关推荐
天下·第二10 分钟前
【Nginx】负载均衡配置详解
运维·nginx·负载均衡
GanGuaGua43 分钟前
linux:进程的替换
linux·运维·服务器
梓䈑1 小时前
【Linux系统】详解Linux权限
linux·运维·bash
小茬粥2 小时前
kvm网卡发现的采集信息脚本COLT_CMDB_KVM_NETDISC.sh
linux·kvm
Mr_sun.2 小时前
Day23-Web开发——Linux
linux·运维·服务器
星雨流星天的笔记本2 小时前
1、Linux操作系统下,ubuntu22.04版本切换中英文界面
linux·学习
极小狐2 小时前
如何创建并使用极狐GitLab 部署令牌?
运维·git·ssh·gitlab·github
muxue1782 小时前
centos 7 网络配置(2):ping命令出现问题
linux·网络·centos
唐僧洗头爱飘柔95273 小时前
(云计算HCIP)HCIP全笔记(九)本篇介绍操作系统基础,内容包含:操作系统组成、分类和定义,Linux的特性结构和Linux版本分类
linux·笔记·华为云·云计算·hcip·openeuler·操作系统概述
电鱼智能的电小鱼3 小时前
EFISH-SBC-RK3588 —— 厘米级定位 × 旗舰算力 × 工业级可靠‌
linux·人工智能·嵌入式硬件·边缘计算