-
2020-10-24 16:12:45更多相关内容
-
Linux sed正则匹配替换文本中所有数字
2020-09-04 13:05:09语法 sed -re ‘s/匹配内容/替换内容/g’ 匹配数字 sed -re ‘s/[0-9]+/我已被替换/p’ 1.txt语法
sed -re ‘s/匹配内容/替换内容/g’显示匹配的数字
sed -n -re ‘s/[0-9].*/我已被替换/p’ 1.txt替换 : 将n和p修改为i和g
效果:
-
linux下sed正则表达式匹配批量替换文件中的内容
2021-05-13 20:54:09sed命令详情sed是一种流编辑器,它是文本解决中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。解决时,把当前解决的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令解决缓冲...sed命令详情
sed是一种流编辑器,它是文本解决中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。解决时,把当前解决的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令解决缓冲区中的内容,解决完成后,把缓冲区的内容送往屏幕。接着解决下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或者多个文件,简化对文件的反复操作,编写转换程序等。
基本语法sed的命令格式:sed [options] 'command' file(s)sed的脚本格式:sed [options] -f scriptfile file(s)
参数参数完整参数说明-e script-expression=script以选项中的指定的script来解决输入的文本文件
-f script--files=script以选项中的指定的script文件来解决输入的文本文件
-h--help显示帮助
-n--quiet --silent仅显示script解决后的结果
-V--version显示版本信息
命令命令说明d删除,删除选择的行
D删除模模块的第一行
s替换指定字符
h拷贝模模块的内容到内存中的缓冲区
H追加模模块的内容到内存中的缓冲区
g取得内存缓冲区的内容,并替代当前模模块中文本
G取得内存缓冲区的内容,并追加到当前模模块文本的后面
l列表不能打印字符的清单
n读取下一个输入行,用下一个命令解决新的行而不是第一个命令
N追加下一个输入行到模模块后面并在二者间嵌入一个新行,改变当前行号码
p打印模模块的行
P打印模模块的第一行
q退出sed
b label分支到脚本中带有标记的地方,假如分支不存在则分支到脚本的末尾
r file从file中读行
t labelif分支,从最后一行开始,条件一旦满足或者者T,t命令,将导致分支到带有标号的命令处,或者者到脚本的末尾
T label错误分支,从最后一行开始,一旦发生错误或者者T,t命令,将导致分支到带有标号的命令处,或者者到脚本的末尾
w file写并追加模模块到file末尾
W file写并追加模模块的第一行到file末尾
!表示后面的命令对所有没有被选定的行发生作用
=打印当前行号
#把注释扩展到第一个换行符以前接下来主要详情替换功能
替换的使用命令说明g表示行内全面替换
p表示打印行
w表示把行写入一个文件
x表示互换模模块中的文本和缓冲区中的文本
y表示把一个字符翻译为另外的字符(但是不用于正则表达式)
\1子串匹配标记
&已匹配字符串标记
当然要使用其功能需要对正则表达式有肯定理解。这里不在详情。
使用例子
创立一个文档hello.txt:you are a boy.hellomy name is han.hellohello,how do you do.hellonice to meet you. good job.
开始操作O(∩_∩)O~
替换hello成world,并打印到屏幕上sed 's/hello/world/' hello.txt
s 表示替换
hello 表示匹配的字母,是正则表达式
world 表示需要替换成的字母
执行结果:
image.png
当我们打开文件时,发现并没有改变。这里只是替换缓存区内的内容,并不改变文件里的内容。
从开始位置替换,并加上回车sed 's/^hello/world\n/' hello.txt
执行结果:
image.png
假如文件太大,这样打印就会显示很多不必要的内容,这样我们即可以使用只打印被匹配的行的命令。
只显示被匹配的行sed -n 's/hello/world/p' hello.txt
n和p的意思上文有详情 不再解释。
执行结果:
image.png
值得注意的是,假如想要回写到文件中(和-i连用),不要只打印当前匹配航,否者只会保存当前匹配行,其余的丢失。
替换文件中的内容,并写到文件里sed -i 's/o/ABC/' hello.txt
执行结果:
执行cat查看文件内容:
image.png
可以看到尽管替换了,但是只替换了第一个被匹配的到内容。
假如想一律替换到字母'o',就需要使用参数'g'。
一律替换,,并写到文件里sed -i 's/o/ABC/g' hello.txt
image.png
执行后,一律的'o',都被替换了。
假如想批量修改代码中的内容使用它还是很方便的。O(∩_∩)O哈哈~
-
Linux Sed正则表达式
2021-05-26 05:39:16例:echo interactive | sed 's/inte/dist/'echo interactive | sed 's:inte:dist:'echo interactive | sed 's_inte_dist_'echo interactive | sed 's|inte|dist|' 查看上面的快照, 使用sed命令将字符串” interact....本文概述
流编辑器
sed命令用于流编辑。
例:
echo interactive | sed 's/inte/dist/'
echo interactive | sed 's:inte:dist:'
echo interactive | sed 's_inte_dist_'
echo interactive | sed 's|inte|dist|'
查看上面的快照, 使用sed命令将字符串” interactive”更改为” distractive”。尽管使用正斜杠(/), 冒号(:), 下划线(_)和竖线(|)也可以使用。
互动编辑
sed命令旨在作为流编辑器, 同时还可以用作文件上的交互式编辑器。对于交互式编辑器, 使用选项” i”。
例:
sed -i 's/today/tomorrow/' file
看上面的快照, 流”今天”在”文件”中转换为”明天”。
简单反向引用
双”&”号用于搜索和查找指定的字符串。它将使用sed命令打印找到的字符串。
例:
echo fourty | sed 's/four/&&/'
看上面的快照, “&”号已搜索字符串” four”并将其打印为” fourfourty”。
任何字符的点
在正则表达式中, 一个简单的点可以表示任何字符。, / p>
例:
echo xxxx-xx-xx | sed 's/....-..-../YYYY-MM-DD/'
查看上面的快照, 点被日期格式替换。
多向引用
如果使用不止一对括号, 则称为分组。在此, 它们每个都可以分别称为三个连续的数字。
例:
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\1:\2:\3/'
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\1_\2_\3/'
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\2:\3:\1/'
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\3:\2:\1/'
看上面的快照, 日期以不同的格式打印。在此, 将2014标记为(1), 将06标记为(2), 将30标记为(3)。
空白空间
空格语法为” \ s”, 制表符空间语法为” \ t”。
例:
echo -e 'this\tis\tsrcmini' | sed 's/\s/ /g'
看上面的快照, ” \ s”用于单个空格。
可选发生
你可以通过使用(?)问号来指定可选内容。
例:
cat list2 | sed 's/iii\?/Y/'
看上面的快照, 我们将第三个” i”作为可选项。需要指出的是, 必须将两个” i”转换为” Y”。
确切的n次出现
确切的发生时间由” {times}”指定。
例:
cat list2 | sed 's/i\{3\}/Y/'
看上面的快照, 我们已经精确地指定了” i”出现的三倍。
发生范围
我们还可以根据范围来指定发生次数。例如, 如果将范围指定为{m, n}, 则’m’表示最小发生次数, ‘n’表示最大发生次数。
例:
cat list2 | sed 's/i\{3, 4\}/Y/'
看上面的快照, 我们将最小范围指定为3, 最大范围指定为4。
-
Linux sed 正则匹配 修改 /etc/hosts 对应域名解析的ip
2019-04-15 11:00:09修改指令如下: echo "127.0.0.1 www.hknaruto.com" >> /etc/hosts sed -i 's/[0-9\.]\+[ ]\+... 说明: 1. 先写入一条记录用于匹配(根据需要调整或直接不要) ...2. 通过sed正则匹配,替换记录值 ... -
grep正则匹配和sed正则匹配的简单例子
2020-12-17 14:25:37关于grep一些简单案例: #查看系统内存、缓存、交换分区 -e的作用是匹配多个表达式 [root@shell ~]# cat /proc/meminfo|grep...#其中:-R:递归,-n表示匹配的行号,-o只输出匹配内容 -E:支持扩展正则表达式 #查找/etc -
Linux正则sed的用法
2021-06-03 11:09:32*sed可以实现一些grep的功能,但是稍微麻烦了一些,sed的强项在于删除文件中的内容和替换sed实现grep检索功能:1.根据关键字检索:[root@localhost ~]# sed -n '/root/'p passwd.txt*使用sed检索时需要在关键字前加-... -
sed 正则表达式 版本号 替换 demo
2021-01-26 15:29:21demo for me set_img_version(){ version_file="/etc/init.d/version.txt" Version="_V2.1.1.0.T7" build_version=${Version#_*} version=${build_version%.T*} echo version : $... sed -i "s/VER_ROOTFS=\ -
linux正则搭配sed的使用
2021-05-26 18:13:33sed -i 's/^[[:space:]]\+//g' /tmp/grub.conf 3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符sed -i 's/^#[[:space:]]\+//g' /tmp/rc.sysinit 4、为/tmp/grub.conf... -
vim sed 正则表达式非贪婪匹配
2022-02-27 19:22:02perl正则表达式中.*?表示非贪婪模式, .*贪婪模式, vim和sed中则无法使用 贪婪模式中u’.*'会匹配到u'a', u'test', u'string' 需求是每个u’.*'匹配到u'a' u'test' u'string' 这样,并修改替换 results = [ u'... -
Linux sed 关键字匹配整行中任意字符进行替换(正则表达式整行替换)
2022-04-19 09:49:41Linux sed 关键字匹配整行中任意字符进行替换(正则表达式整行替换) Linux sed 关键字匹配整行中任意字符进行替换(整行替换) 语法: sed -i 's/.*要查找的字串符.*/要替换的字串符/' a.txt 实战示例: 场景: 查找... -
shell脚本之正则表达式、grep、sed、awk
2020-12-13 16:47:33–正则– 基础正则 ^word ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$ ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$ ##表示空行 . ##代表且只能代表任意一个字符 \ ##例:\. 只代表点本身,转义符号,让... -
grep|awk|sed正则匹配有效电话号码(LeetCode)
2020-06-08 23:06:15好了,搞起~ 过滤字符,shell工具常用的还是grep、awk、sed 提炼正则条件之后,三者通吃 条件 含义 ^ 匹配开头 $ 匹配结尾 [0-9]{3} 匹配字符集0-9内,3个字符 | 或 这里匹配该条件的正则表达式:’^([0-9]{3}-|([0... -
linux 正则匹配小记
2021-05-14 00:57:541.使用正则匹配文件名## grep -n '[^\/][a-zA-Z0-9]*[.a-zA-Z0-9][a-zA-Z0-9]*$' regular_express.txt/etc/init.d/hello.h/etc/init.d/hehe2.使用sed提取出网卡IP(1)# ifconfig eth0 |grep 'inet addr'inet addr:192... -
Linux文本处理三剑客sed详解(正则匹配、命令示例)
2020-05-16 21:57:38文本处理:sed 1.sed工作流程 sed读一行放到模式空间进行处理 sed是一种在线的、非交互式的编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,成为模式空间,接着用sed命令处理缓冲区中的内容... -
正则表达式grep,sed
2021-05-12 12:02:21:模式空间中匹配行进行取反处理 例子: cat f1 |sed ‘5a1234567\n7654321’在该文件中的第五行后追加 cat f1 |sed ‘5,10a1234567\n7654321’在该文件的5到10行后分别追加 cat f1 |sed ‘5a\ 1234567\n7654321’在... -
Shell中使用grep、sed正则提取和替换字符串
2021-05-10 04:05:12-name "*.txt" | xargs grep -P 'regex' -oxargs会将find结果作为grep的输入,防止find结果过多无法处理-P参数表明要应用正则表达式-o表示只输出匹配的字符串,这样我们就可以把正则匹配到的结果拿到了。Linux、Mac... -
sed 正则表达式查找与替换 插入
2021-09-14 16:41:40正则匹配替换 目标:将配置文件的“option domain-name-servers 127.0.0.53”的“127.0.0.53”部分替换掉。 解决思路:我没能做到只替换ip部分,因为sed替换了识别到的整个部分。所以最后是替换整体 相关参数(命令... -
Linux基础之正则表达式
2021-05-12 04:39:30打印匹配到的行模式:由正则表达式字符及文本字符所编写的过滤条件选项:–color=auto 对匹配到的文本着色显示-v 显示没有被匹配到的行-i 忽略大小写匹配-n 显示匹配到的行号-c 统计匹配到的行总数-o 仅显... -
linux正则表达式sed
2021-05-10 04:05:14sed、awk工具可以实现文本替换并且把替换的文本输出到屏幕上sed和awk都是流式编辑器,是针对文档的行来操作的。sed通常用来替换操作。示例的文本内容,以下操作根据此文本。[root@yonglinux~]#cattest.txtrot:x:0:0:... -
使用sed正则表达式替换前后内容,保留中间匹配不变
2021-01-28 11:49:31网上很多正则表达式替换内容艘是通过编辑器操作,而没有命令行,所以补上一个用sed的搜索查找替换的功能实现内容替换,并保留部分内容。 需求 原文件内容 I come from {U+5E7F}{U+5DDE}. 目标文件内容 I come... -
shell sed命令匹配替换删除最后第一行字符正则表
2021-05-18 03:58:08只显示每行的第一个单词[root@localhost ~]# sed -r 's/([^0-9a-Z]+)(.+)//gp' passwdrootbindaemonadm打印每行3次:sed 'p;p' passwd 每一个p代表一次打印,如果没有p则打印一遍,之后没多一个p就会多一次打印[root... -
Linux——文本处理工具及正则表达式
2021-05-15 21:34:05cat:文件查看cat [OPTION]... [FILE]...-E:-E: 显示行结束符$-n: 对显示出的每一行进行编号-A:显示所有控制符-b:非空行编号-s:压缩连续的空行成一行more:分页.../文本搜索文本n/N跳到下一个或上一个匹配les... -
sed 使用正则表达式分组替换--保留部分匹配内容
2022-05-25 15:28:18正则表达式使用圆括号分组,在sed中,使用形如\1取分组1的匹配值 Linux: sed -ir "s/([a-zA-Z0-9]+)_[a-z0-9]{32}/\1/g" targetFile.txt Mac: sed -i '' -E "s/([a-zA-Z0-9]+)_[a-z0-9]{32}/\1/g" targetFile.txt -
4.2_1 Linux Sed命令详解(文本处理工具 - 匹配,替换,添加等)
2020-07-24 16:35:10Linux Sed命令详解(文本处理工具 - 匹配,替换,添加等),优化投产步骤,使用命令批量修改抽数脚本代替逐个vim -
Linux中的awk、sed、grep及正则表达式详解
2021-09-20 20:04:38Linux中的awk、sed、grep及正则表达式详解 简介 awk、sed和grep是Linux中文本操作的三大利器。 其中awk适用于取列,sed适用于取行,grep适用于过滤。 正则表达式 首先我们来介绍一下正则表达式,正则表达式(regular ... -
Linux sed工具用法与扩展正则表达式
2021-05-26 10:32:49sed数据处理工具sed数据处理工具其实也是一个管道命令sed 【-nerf】 操作-n使用安静模式 不在屏幕输出-e 在命令行模式进行操作-f 执行文件内的操作-r 使用扩展正则表达式方法-i 直接修改文件内容不在屏幕输出n1,n2 ...