1. sed(stream editor),流编辑器

  linux中,主要中sed命令实现对文件的增删改替换查

名称
sed - 用于过滤和转换文本的流编辑器 SYNOPSIS
sed [选项]... {script-only-if-no-other-script} [文件]... 常用选项或命令
-i 正式执行操作修改内容 -n 取消默认输出 -e 允许多项编辑 -r 使用扩展正则表达式 = 在文件内容行前增加一行行号 s 查找并替换 g 全局范围 p 打印输出 '/ /p' 正则表达式匹配/ /里面的内容并输出 '2s///g' 2指代第二行 's#()()#\1\2#g' 分配处理,\1指代第1个()内的内容 's#()()#mv & doubi#g' 分配处理,\1指代第1个()内的内容,&指代##里面查找到的所有内容 脚本命令
i         在匹配的文件内容行前增加,常用格式:’//i zjnr’,’2i zjnr’ a         在匹配的文件内容行后增加,常用格式:’//a zjnr’、’2a zjnr’ d         删除匹配的文件内容所在的行,常用格式:’//d’、’2d’ p          打印输出匹配到的文本内容,常用格式:sed -n ’//p’、sed -n ‘2p’ s          替换匹配到的文件内容,常用格式:’s///g’、’s###g’;&代表匹配到的内容 c         按匹配到的内容替换文本内容,使用格式:’2c thnr’

2. sed的简单增删查改

# 把passwd文件复制到当前用户家目录
cp /etc/passwd ~/
cd # 增
# 22行前插入
sed -i '22 i佛祖派来的逗比' passwd
# 22行后添加
sed -i '22 a佛祖派来的逗比' passwd
# 匹配postfix行,在行前插入
sed -i '/postfix/ iemail' passwd # 删
sed -i '22d' passwd
sed -i '/佛祖派来的逗比/d' passwd # 查,-n取消默认输出,即只输出匹配到的内容
sed -n '/root/p' passwd
sed -n '22p' passwd # 替换
# 替换匹配到的第一个root为Caiyun
sed -i 's#root#Caiyun#' passwd
# 替换所有root为Caiyun
sed -i 's#root#Caiyun#g' passwd

3. 扩展实例

# 取ip地址
ifconfig eth0|sed -nr '2s/^.*ddr:(.*) B.*$/\1/gp' # 转换列输出
sed -r 's#([^:]+)(:.*:)(/.*$)#\3\2\1#g' passwd # 优化sshd服务
sed '13a Port 52004\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' sshd_config # 打印文件内容不包含root用户行
sed '/root:x/d' passwd #指定行修改文件内容
sed '28s/dudu/DUDU/g' passwd # 优化开机自启动服务
chkconfig --list|grep "3:on"|egrep -v "crond|network|rsyslog|sshd|sysstat" |awk '{print"chkconfig",$1,"off"}'|bash # 批量更改文件名
ls rename/|sed -r 's/(^stu.*)_fin.*$/\1.png/g'
ls|sed 's/\(^stu.*\)_fin.*$/mv & \1.png/g'|bash
rename "_finished" "" stu*

Linux之sed命令常见用法的更多相关文章

  1. sed命令常见用法

    sed -n 'num1p' file 选出行号为num1的行sed -n 'num1,num2p' file 选出num1~num2行sed -n 'num1,$p' file 选出num1行到文件 ...

  2. linux中sed命令(全面解析)

    目录 一:linux中sed命令介绍 1.sed作用 2.sed命令格式 3.参数 4.sed的编辑模式 5.sed参数解析用法 二:sed 参数 -f 案例实战解析 1.前介 2.引入简介 3.方法 ...

  3. linux的sed命令(一)

    转自:https://www.cnblogs.com/ginvip/p/6376049.html Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务 ...

  4. Linux中find命令的用法汇总

    Linux中find命令的用法汇总 https://www.jb51.net/article/108198.htm

  5. linux 的sed命令解释 sed ':t;N;s/\n/,/;b t' 将换行符换成逗号

    linux 的sed命令解释 sed ':t;N;s/\n/,/;b t' 将换行符换成逗号 实现的功能是吧换行符换成逗号了,自己试验过. 求解释,:t N b t 都是什么意思??? :t 定义la ...

  6. Linux shell sed 命令详解

    详细的sed命令详解,请参考https://my.oschina.net/u/3908182/blog/1921761 sed命令常见用途 查找关键词做全局替换 查找某行的关键词做替换 查找关键字所在 ...

  7. linux的nohup命令的用法(后台运行程序命令)

    linux的nohup命令的用法. 在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/ ...

  8. Linux系统sed命令常用参数实战

    Linux系统sed命令常用参数实战 常用参数 -n 输出某行的文本内容,通常与p联合使用, -e 命令行模式下进行sed的动作编辑,输出编辑后的内容,源文件不会发生变化 -f 以命令中指定的scri ...

  9. linux下shell脚本中sed命令的用法

    先来给一个案例: #将old.sql文件中的符号“|”替换为“,”,并保存到test.sql文件中 sed "s/|/,/g" "old.sql"> te ...

随机推荐

  1. FastAPI 学习之路(三十三)操作数据库

    通过创建pydantic模型进行验证提交数据 from pydantic import BaseModel class UserBase(BaseModel): email: str class Us ...

  2. Java基础之原生JDBC操作数据库

    前言 日常开发中,我们都习惯了使用ORM框架来帮我们操作数据库,本文复习.记录Java如何使用原生JDBC操作数据库 代码编写 封装几个简单方法 find查询方法 findOne查询方法 update ...

  3. 简明教程 | Docker篇 · 其二:Dockerfile的编写

    Dockerfile是什么 一个包含用于组合 image 的命令的文本文件,docker 通过 dockerfile 和构建环境的上下文来构建 image . 编写Dockerfile FROM 首先 ...

  4. 链式A+B 牛客网 程序员面试金典 C++ Python

    链式A+B 牛客网 程序员面试金典 C++ Python 题目描述 有两个用链表表示的整数,每个结点包含一个数位.这些数位是反向存放的,也就是个位排在链表的首部.编写函数对这两个整数求和,并用链表形式 ...

  5. copy-list-with-random-pointer leetcode C++

    A linked list is given such that each node contains an additional random pointer which could point t ...

  6. hdu 2176 取(m堆)石子游戏 (裸Nim)

    题意: m堆石头,每堆石头个数:a[1]....a[m]. 每次只能在一堆里取,至少取一个. 最后没石子取者负. 先取者负输出NO,先取胜胜输出YES,然后输出先取者第1次取子的所有方法.如果从有a个 ...

  7. Get value from agent failed: cannot connect to [[192.168.8.102]:10050]: [113] No route to host

    192.168.8.102主机down掉,开机就可以

  8. Linux环境下安装中山大学东校区iNode客户端

    在中山大学登录校园网有两种方式,一种是连接WiFi,另一种是连接网线.这两种上网方式都需要用到NetID,但是连接网线的话还需要使用到iNode客户端(指东校区). Windows下iNode客户端的 ...

  9. 西邮Linux兴趣小组第一次技术分享会

    2016年10月30日晚,西邮Linux兴趣小组技术分享会在西安邮电大学长安校区东区逸夫教学楼FF305室成功举办.200多名来自全校不同专业的15,16级同学参加了此次分享会. 分享会于20:00正 ...

  10. thread pool

    thread pool import concurrent.futures import urllib.request URLS = ['http://www.foxnews.com/', 'http ...