重庆奉节网站建设公司哪家好,优普南通网站建设,公众号运营岗位职责,设计素材网站大全网站文章目录 前言一、pandas是什么#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言
Liunx中筛选文本时常用的命令#xff0c;常常会被提及文本三剑客#xff0c;前文我们学习了文本三剑客中的grep 命令#xff0c;除了grep命令我们也常用到sed命令#xff0c;sed命令有… 文章目录 前言一、pandas是什么二、使用步骤 1.引入库2.读入数据总结 前言
Liunx中筛选文本时常用的命令常常会被提及文本三剑客前文我们学习了文本三剑客中的grep 命令除了grep命令我们也常用到sed命令sed命令有着grep命令独有的功能 一.概述 sed 是一种流编辑器用于在文本流中进行操作。它可以用来进行文本替换、文本删除、文本提取和文本转换等任务。sed 将输入文本作为流处理并可以对其进行修改然后将修改后的文本输出到标准输出或将其重定向到文件中。
工作原理
sed 的工作流程主要包括读取、执行和显示三个过 程
读取:sed 从输入流文件、管道、标准输入中读取 一行内容并存储到临时的缓冲区中又称模式空间pattern space。执行默认情况下所有的sed 命令都在模式空间中顺 序地执行除非指定了行的地址否则sed 命令 将会 在所有的行上依次执行。显示发送修改后的内容到输出流。在发送数据后模 式空间将会被清空 重复上述过程直到将文件中所有数据处理完毕 模式空间sed在内存里开辟的空间处理文件的每个输入行保持空间保存处理过的输入行将第一行的处理结果保存到该空间后继续处理第二行 将所有行处理结束后再将保留空间的内容写入硬盘临时缓冲区模式空间 二.sed命令 格式 sed -参数 [定址符] 操作 文件名 参数 -n 一般配合行号使用使用-n后仅显示被处理的行
-i直接编辑原文件而不是由屏幕输出默认不对原文件进行操作
-e对文本进行多个动作时使用-e将动作分开执行
-r使用扩展正则表达式
-f类似于输出重定向符号直接将sed动作写入一个文件内
-{} 可组合多个命令以分好隔开 定址符 用于指定sed命令处理的行范围 1,5对文件的1-5行内容进行处理
2,$对文件的2到最后一行内容进行处理
1,3对文件第1行以及以后的3行内容进行处理
1~2对文件的1357……的行内容进行处理
/正则表达式/对任何能够被正则表达式匹配到的行进行处理操作 增删改查 执行增删改查等动作 s替换替换指定字符一般搭配正则表达式
d删除删除选定的行。
p打印如果同时指定行表示打印指定行如果不指定行则表示打印所有内容其通常与“-n”选项一起用。
打印行号。
a增加a 的后面可以接字串而这些字串会在新的一行出现(目前的下一行)
i插入i 的后面可以接字串而这些字串会在新的一行出现(目前的上一行)
c行替换指定行中的所有内容替换成该选项后面的字符串。
y字符转换转换前后的字符长度必须相同。
l(小写)打印数据流中的文本和不可打印的ASCII字符比如结束符$、制表符\t对指定行以外的所有行应用命令代表匹配到的内容 三.案列 使用 n ..p 打印 [rootserver ~]# sed -n ;p sed1.txt
#打印文件中所有内容并显示行号
#分号用于将操作命令串联使用
#-e 作用和分号相同 格式为 -e 操作 -e 操作 [rootserver ~]# sed -n 1p sed1.txt
#打印第一行
one 数字数字 [rootserver ~]# sed -n 3,9p sed1.txt
# 打印3-9行
three
four
five
six
seven
eight
nine 2$ :对文件第7行到最后一行进行处理 [rootserver ~]# sed -n 7,$p sed1.txt 1~2 对文件的1357……的行内容进行处理
[rootserver ~]# sed -n 2~2p sed1.txt
#从第2行开始以2为步长打印偶数行对指定行以外的所有行应用命令
[rootserver ~]# sed -n 1!p sed1.txt
#打印除了第1行的剩余行信息分号 将操作串联
[rootserver ~]# sed -n 4p;6p;8p
# 打印4 6 8行1,3
对文件第1行以及以后的3行内容进行处理
[rootserver ~]# sed -n 1,2p sed1.txt
#打印第一行及以下2行 /正则表达式/
[rootserver ~]# sed -n /^f/p sed1.txt
# 以正则条件检索行并打印
#打印以f开头的行 定址符/正则表达式/ 使用正则表达式为条件筛选行并打印(p)[rootserver ~]# sed -n /t/p sed1.txt
# 检索包含t的行信息分号代表或关系
[rootserver ~]# sed -n /^t/p ; /^f/p
sed1.txt # 检索以t开头或以f开头
特殊结构
[rootserver ~]# sed -n p;n sed1.txt
# 奇数行
#特殊结构n;p 打印偶数行 p;n 打印奇数行 $ 显示行数 四.文本替换
sed 行范围s/旧字符串/新字符串/替换标记 文件名
#s替换动作 未写行范围代表对全文进行操作行范围使用数字表示即对第几行到第几行进行替换处 理若省略则表示进行全文处理s 替换动作 替换标记 数字使用1-512之间的数字表示指定需要替换的字 符串出现第几次才进行替换替换标记g对数据中所有匹配到的内容进行替换若省略g则 只会对第一次匹配的内容进行替换p替换成功立刻打印一般与-n一起使用w 文件名 将缓冲区的内容写入到指定文件中 使用正则表达式匹配的内容进行替换\ 转义符若有特殊符号或路径则需要转义
案列
# 替换所有的root为boot
[rootserver ~]# sed s/root/boot/gp ps #p:仅显示处理过的结果
#g对文中匹配的内容进行全部替换不加g表示仅替换找到内容中第一个匹配到的目标
#提换每一行第一个root为admin
[rootserver ~]# sed -n s/root/admin/p ps#替换每一行的第2个root为admin
[rootserver ~]# sed -n s/root/admin/2p ps# 将/sbin/nolgin 替换为 /bin/bash
[rootserver ~]# sed -n s/\/sbin\/nologin/\/bin\/bash/gp ps
#由于sed替换命令中自带/格式当替换的文本中包含/代表路径时需要加转义符\总结