当前位置: 首页 > article >正文

linux上sed的常用操作

注意事项

分割符不一定是"/"可以是任意的符号,如@
"^“代表行首,” " 代表行尾 s e d 里面需要用变量,要用双引号 s e d ′ s / / / g ′ 代表匹配每一行有行首到行尾的所有字符 s e d ′ s / / / ′ 代表匹配每一行的行首开始匹配,匹配到第一个符合的字段,就会结束,跳到下一行 s e d 命令使用双引号的情况下,可以使用 "代表行尾 sed里面需要用变量,要用双引号 sed 's///g' 代表匹配每一行有行首到行尾的所有字符 sed 's///' 代表匹配每一行的行首开始匹配,匹配到第一个符合的字段,就会结束,跳到下一行 sed命令使用双引号的情况下,可以使用 "代表行尾sed里面需要用变量,要用双引号seds///g代表匹配每一行有行首到行尾的所有字符seds///代表匹配每一行的行首开始匹配,匹配到第一个符合的字段,就会结束,跳到下一行sed命令使用双引号的情况下,可以使用var(变量)直接引用,单引号的情况下,可以使用’“ v a r " ′ 引用 e c h o ∣ s e d " s / / var"'引用 echo | sed "s/^/ var"引用echosed"s//RANDOM.rmvb_/g”
echo | sed “s/^/'“ R A N D O M " ′ . r m v b / g " s e d 命令中使用双引号的情况下,直接 ‘ s h e l l c o m m a n d ‘ 或者 RANDOM"'.rmvb_/g " sed命令中使用双引号的情况下,直接`shell command`或者 RANDOM".rmvb/g"sed命令中使用双引号的情况下,直接shellcommand或者(shell command)引用命令执行。
echo | sed “s/^/$(date +”%Y%m%d”).rmvb_/g”
echo | sed “s/^/echo $RANDOM.rmvb_/g”

添加

# 所有行末尾加*号
sed -i 's/$/*/g' rpm-faile.txt
# 包含autostart的行首添加#号
sed -i "/autostart/ s/^/#/" /var/spool/cron/crontabs/root
# 给空行开头添加字符null
sed -i '/^$/s/^/null/' domain.txt
# 匹配字符串行后添加内容
sed -i "/AAAA/a\BBBB " filename
# 匹配字符串行前添加内容
sed -i "/AAAA/i\BBBB " filename
# 行首添加指定字符串:A& 表示添加到行首
sed -i "s/^/AAAA&/ " filename
# 行尾添加指定字符串:&A 表示添加到行尾
sed -i "s/$/&AAAA/ " filename
# 匹配字符串开头行前添加内容
sed  -i "s/^pattern/AAAA&/g" filename
# 匹配字符串后面添加内容
sed -i 's/pattern/&AAAA/' filename

删除

# 删除包含autostart字符串的行首#号
sed -i "/autostart/ s/^#//" /var/spool/cron/crontabs/root
# 删除不包含AAAA的行
sed -i '/AAAA/!d' filename
# 删除空行
sed -i '/^$/d' filename
# 删除行首空格
sed -i 's/^[ \t]*//g'  filename
# 删除行末空格
sed -i 's/[ \t]*$//g' filename
# 删除所有的空格
sed -i 's/[[:space:]]//g' filename
# 删除包含匹配字符串的行
sed -i '/AAAA/d' filename
# 删除匹配字符串AAAA开头的行
sed -i '/^AAAA.*/d' filename
# 删除特殊字符串之间的内容,\/代表转义/
sed -i '/<\/schema>/,/<heartbeat>/{//!d}' filename
# 删除某行到指定字符串之间的内容
sed -i '3,/AAAA/d' filename
# 删除匹配AAAA,EEEE之间的数据
sed -i '/AAAA/,/EEEE/d' filename
# 删除匹配AAAA,EEEE之间的数据,保留AAAA
sed -i '/AAAA/,/EEEE/{/AAAA/b;d}'  filename
# 删除匹配AAAA,EEEE之间的数据,保留EEEE
sed -i '/AAAA/,/EEEE/{/EEEE/b;d}' filename
# 删除匹配AAAA,EEEE之间的数据,保留AAAA和EEEE
sed -i '/AAAA/,/EEEE/{/AAAA/b;/EEEE/b;d}' filename
# 直接替换原文件(有风险)
sed -i '/匹配字符串/I, +N行 d' 输入文件名
# 不替换原文件(安全适合老年人)
sed '/匹配字符串/I, +N行 d' 输入文件名 > 输出文件名
批量操作
# 删除203至218行内容
find . -name "*.html" -type f | xargs sed -i -e '203,218d'
# 删除指定字符串的行
find . -name "*.html" -type f | xargs sed -i -e '/AAAA/d;/BBBB/d'
# 删除指定字符串之间的内容
find . -name "*.html" -type f | xargs sed -i -e '/AAAA/,/BBBB/d'

替换

# 删除包含RemoveIPC字符的行行首的#号并把yes替换为no
sed -i "/RemoveIPC/ s/^#//; /RemoveIPC/ s/yes/no/g" /etc/systemd/logind.conf
# 替换匹配字符串
sed  -i “s/被替换内容/替换内容/g”  filename
# 匹配指定字符串开头的行,替换整行内容
sed -i "/^指定字符/替换内容" filename
# 匹配到行中部分内容,替换整行
sed -i '/.*AAAA.*/c'$coud'' filename
# 匹配到行中以AAAA开头的内容,替换整行
sed -i '/AAAA$/c\BBBB' filename
# 匹配到行中以AAAA结尾的内容,替换整行
sed -i '/AAAA$/c\BBBB' filename
# 匹配指定行到某行之间的替换
sed -i '3,8c\AAAA' filename
# 匹配指定字符串之间的内容替换
sed -i '/AAAA/,/BBBB/c\CCCC' filename
# 所有以AAAA开头的被替换为AAAABBBB
sed 's/^AAAA/&BBBB/' filename
# 分隔符不是唯一,此处以@作为分隔符
sed -i "s@wav/dev/third_party/B00000@wav@ "  filename
# 首字母转换为大写

sed 's/^[a-z]\+/\u&/' filename
# 首字母转换为小写

sed 's/^[A-Z]\+/\l&/' filename
# 匹配到的字符全部转换为大写:
sed 's/^[a-z]\+/\U&/' filename  
# 匹配到的字符全部转换为小写:
sed 's/^[A-Z]\+/\L&/' filename

查看

# 查询指定字符串所在行号
sed -n "/AAAA/=" filename
# 显示第一行 
sed -n '1p' ab
# 显示最后一行
sed -n '$p' ab
# 显示第一行到第二行
sed -n '1,2p' ab
# 显示第二行到最后一行
sed -n '2,$p' ab

http://www.kler.cn/news/360744.html

相关文章:

  • [数据采集技术:实践02]:requests,lxml,BeautifulSoup模块的使用
  • vue3--实现瀑布流-长列表-懒加载
  • 电脑视频剪辑大比拼,谁更胜一筹?
  • SaaS架构:中央库存系统架构设计
  • 蘑菇分类识别数据集(猫脸码客 第222期)
  • C++源码生成·序章
  • 【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!
  • phpstudy如何搭建靶场的教程--适合入门小白
  • Python Numpy 实现神经网络自动训练:反向传播与激活函数的应用详解
  • sharding sphere 加解密功能 like语句 SQL 解析报错
  • OBOO鸥柏:液晶拼接大屏搭载节点盒分布式集中管控控制系统新技术
  • 2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(上)(分值10+)
  • Java项目-基于springboot框架的网上书城系统项目实战(附源码+文档)
  • jQuery:元素控制 事件
  • ReactOS寻找病返回最小StartingAddress所在结点。
  • 【Flutter】iOS上使用 UIPasteboard.detectPatterns 优化剪切板权限弹窗逻辑
  • centos 安装达梦数据库
  • Oracle分区表改造(三):通过分区交换和分裂改造为分区表
  • 苦寻多时,终于找到!这款免费GIS工具助你轻松搞定地形切片
  • [Luogu 4630] APIO2018 铁人两项(广义圆方树)