我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell文本中如何使用sed

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell文本中如何使用sed

小编给大家分享一下Shell文本中如何使用sed,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

sed 是 stream editor 的缩写,流编辑器,主要用于对标准输出或文件进行处理。

语法:

stdout | sed [option] "pattern command"sed [option] "pattern command" file1

常用选项(option)

# -n 只打印静默模式匹配行,而不输出原行# p 是打印命令➜ sed '/hello/p' helloWorld.sh#!/bin/bashHELLO bashecho "hello world"echo "hello world"➜ sed -n '/hello/p' helloWorld.shecho "hello world"# -e 追加一组编辑命令➜ sed -n -e '/hello/p' -e '/HELLO/p' helloWorld.shHELLO bashecho "hello world"# -f 把所有编辑命令保存在文件中,适用于复杂编辑操作➜ cat edit.sed/hello/p➜ sed -n -f edit.sed hello.md# -E (或 -r)支持扩展正则表达式➜ sed -n -E '/hello|HELLO/p' helloWorld.shHELLO bashecho "hello world"# -i 直接修改源文件内容# s 是替换命令# 这里是吧 helloWorld.sh 文件中所有的 hello 改为 hello123sed -n -i 's/hello/hello123/g' helloWorld.sh

匹配模式(pattern)

匹配模式说明
10command第 10 行
10,20command第 10 到 20 行
10,+5command第 10 到 16 行
/pattern1/command匹配 pattern1 对应的行
/pattern1/,/pattern2/command从 pattern1 对应的行开始,到 pattern2 的行
10,/pattern1/command从第 10 行开始,到 pattern1 的行
/pattern1/,10command从 pattern1 对应的行开始,到第 10 行

常用编辑命令(command)

查询

  • p 打印匹配的内容

增加

  • a string 行后追加

  • i string 行前追加

  • r file 从外部文件读入,在匹配的行后追加

  • w newfile 将匹配的行写入外部文件

删除

  • d 删除

修改

  • s/old/new 替换行内第一个 old 为 new

  • s/old/new/g 行内所有 old 替换为 new

  • s/old/new/2g 从第 2 行开始到文件末尾的所有 old 替换为 new

  • s/old/new/ig 行内所有 old 替换为 new,忽略大小写

示例:

# 删除以 sys 开头、并且以/sbin/nologin 结尾的行➜ sed -i '/^sys.*\/sbin\/nologin$/d' passwd_bak# 删除注释行、空行sed -i '/[:blank:]*#/d;/^$/d' passwd_bak# 查找在以 vagrant 开头的行,下一行追加内容➜ sed -i '/^vagrant/a 这是追加的一行内容' passwd_bak# 把所有的 root 替换为 root123➜ sed -i 's/root/root123/ig' passwd_bak# 在所有以 sys 开头、以 nologin 结尾的行,尾部追加 _666# 其中 & 表示前面正则匹配到的内容➜ sed -i 's/^sys.*nologin$/&_666/g' passwd_bak# 把所有以 sys 开头、以 nologin_666 结尾的行 改为# 以 SYS_ 开头、以 _777 结尾,其中 \1 表示前面括号中匹配的中间部分内容➜ sed -i 's/^sys\(.*\)nologin_666$/SYS_\1_777/g' passwd_bak# 把 1 ~ 10 行所有的 sys 改为 SYS➜ sed -i '1,10s/sys/SYS/ig' passwd_bak# 统计 my.cnf 文件中 mysqld 的子配置项数量# sed 查找从 [mysqld] 到 下一个[.*] 之间的行# grep -v 过滤注释、空行和 [.*] 行# wc -l 统计最后的行数sed -n "/^\[mysqld\]$/,/^\[.*\]$/p" /etc/my.cnf | grep -Ev '^$|[#;]|^\[.*' | wc -l

注意:如果匹配模式中存在变量,则建议使用双引号,如 sed -i "s/$OLD_STR/$NEW_STR/g" passwd_bak

以上是“Shell文本中如何使用sed”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell文本中如何使用sed

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell文本中如何使用sed

小编给大家分享一下Shell文本中如何使用sed,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sed 是 stream editor 的缩写,流编辑器,主要用于对
2023-06-09

linux中如何使用Sed文本编辑器

这篇文章给大家分享的是有关linux中如何使用Sed文本编辑器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Sed 缺少通常的文本框,而是按照用户的命令直接写入到文件上。sed 命令是为 AT&T 最初的 Uni
2023-06-15

shell脚本中sed怎么用

这篇文章主要介绍了shell脚本中sed怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。
2023-06-09

Linux中如何使用sed文本处理命令

Linux中如何使用sed文本处理命令,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。s
2023-06-12

shell脚本之sed怎么使用

这篇文章主要介绍“shell脚本之sed怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“shell脚本之sed怎么使用”文章能帮助大家解决问题。sed的作用sed是Stream Editor(
2023-07-02

Shell文本处理三剑客之sed的使用

sed 是 stream editor 的缩写,流编辑器,主要用于对标准输出或文件进行处理。语法:stdout | sed [option] "pattern command" sed [option] "pattern command"
2022-06-04

Linux下如何使用sed命令切割文本

这篇文章主要介绍了Linux下如何使用sed命令切割文本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sed是一个流(stream)编辑器,每次读取文本中的一行,放到内存的缓
2023-06-27

shell中的sed命令怎么使用

在shell中,sed命令是一种流编辑器,用于对文本进行替换、删除、插入等操作。sed命令的基本语法如下:```sed [选项] '命令' 文件```其中,选项可以是以下之一:- `-n`:不输出模式空间内容到屏幕上。- `-e`:直接在命
2023-09-12

node中如何使用shell脚本

这篇文章将为大家详细讲解有关node中如何使用shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。新建项目下新建脚本文件touch newFile.sh修改文件权限chmod 777 newFil
2023-06-14

怎么在Shell脚本中使用sed命令删除特定行

这篇文章将为大家详细讲解有关怎么在Shell脚本中使用sed命令删除特定行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。sed命令常用到的两个选项:-i : 直接在文件上编辑 (edit f
2023-06-09

linux中如何使用sed命令

这篇文章将为大家详细讲解有关linux中如何使用sed命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明:sed是stream editor(流编辑器)的缩写。它能够完美匹配正则表达式。sed和awk
2023-06-09

Linux如何使用GNU sed

这篇文章主要介绍了Linux如何使用GNU sed,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。流编辑器 是用来从文件读取文本或者从管道实现基本的变化。结果送到标准输出。 s
2023-06-28

如何使用SED命令

小编给大家分享一下如何使用SED命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sed (stream editor)功能说明:利用script来处理文本文件。
2023-06-09

Shell中如何使用grep、sed正则提取和替换字符串

小编给大家分享一下Shell中如何使用grep、sed正则提取和替换字符串,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux中使用grep正则提取字符串ec
2023-06-09

Shell脚本如何使用

小编给大家分享一下Shell脚本如何使用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! shell前言Shell 能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文件等,这就
2023-06-15

linux如何使用shell搜索查找文本

这篇文章主要介绍“linux如何使用shell搜索查找文本”,在日常操作中,相信很多人在linux如何使用shell搜索查找文本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux如何使用shell搜索查
2023-06-13

sed命令如何在linux中使用

这期内容当中小编将会给大家带来有关sed命令如何在linux中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为
2023-06-13

“$” 符号如何在Shell 脚本中使用

“$” 符号如何在Shell 脚本中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通常情况下,在工作中用的最多的有如下几项:$0:Shell 的命令本身1到9:表示 She
2023-06-09

工作中如何使用Shell实用脚本

这篇文章主要介绍工作中如何使用Shell实用脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 内存监控脚本#!/bin/bash#memory usemem_war_file=/tmp/mem_war.txtm
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录