精华内容
下载资源
问答
  • 2020-10-24 16:12:45

    要求

    一个字符串由姓名,年龄,性别组成,如mstr4r17Man

    将这个字符串用逗号将姓名,年龄,性别分开,如mstr4r,17,Man

    解决方法

    使用$$用于代替之前匹配出来的字符串,,&,表示在匹配出来的字符串前后加一个逗号

    echo "mstr4r17Man" | sed "s/[0-9]\{1,3\}/,&,/g"
    
    更多相关内容
  • 语法 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
    效果:
    在这里插入图片描述

    展开全文
  • sed命令详情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 表示需要替换成的字母

    执行结果:

    646cbad88a59a03541b58786a52908a9.pngimage.png

    当我们打开文件时,发现并没有改变。这里只是替换缓存区内的内容,并不改变文件里的内容。

    从开始位置替换,并加上回车sed 's/^hello/world\n/' hello.txt

    执行结果:

    ccb2ae24ece5eb3e4ad113bb230aab49.pngimage.png

    假如文件太大,这样打印就会显示很多不必要的内容,这样我们即可以使用只打印被匹配的行的命令。

    只显示被匹配的行sed -n 's/hello/world/p' hello.txt

    n和p的意思上文有详情 不再解释。

    执行结果:

    9090ce6d878525cee0d3f8d37b44cf05.pngimage.png

    值得注意的是,假如想要回写到文件中(和-i连用),不要只打印当前匹配航,否者只会保存当前匹配行,其余的丢失。

    替换文件中的内容,并写到文件里sed -i 's/o/ABC/' hello.txt

    执行结果:

    执行cat查看文件内容:

    4d4b6a1fea942989e77a8841bda3232a.pngimage.png

    可以看到尽管替换了,但是只替换了第一个被匹配的到内容。

    假如想一律替换到字母'o',就需要使用参数'g'。

    一律替换,,并写到文件里sed -i 's/o/ABC/g' hello.txt

    6b40cf33ad0b6fc431ae972c7a84d26b.pngimage.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|'

    linux-sed-regular-expression1.png

    查看上面的快照, 使用sed命令将字符串” interactive”更改为” distractive”。尽管使用正斜杠(/), 冒号(:), 下划线(_)和竖线(|)也可以使用。

    互动编辑

    sed命令旨在作为流编辑器, 同时还可以用作文件上的交互式编辑器。对于交互式编辑器, 使用选项” i”。

    例:

    sed -i 's/today/tomorrow/' file

    linux-sed-regular-expression2.png

    看上面的快照, 流”今天”在”文件”中转换为”明天”。

    简单反向引用

    双”&”号用于搜索和查找指定的字符串。它将使用sed命令打印找到的字符串。

    例:

    echo fourty | sed 's/four/&&/'

    linux-sed-regular-expression3.png

    看上面的快照, “&”号已搜索字符串” four”并将其打印为” fourfourty”。

    任何字符的点

    在正则表达式中, 一个简单的点可以表示任何字符。, / p>

    例:

    echo xxxx-xx-xx | sed 's/....-..-../YYYY-MM-DD/'

    linux-sed-regular-expression4.png

    查看上面的快照, 点被日期格式替换。

    多向引用

    如果使用不止一对括号, 则称为分组。在此, 它们每个都可以分别称为三个连续的数字。

    例:

    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/'

    linux-sed-regular-expression5.png

    看上面的快照, 日期以不同的格式打印。在此, 将2014标记为(1), 将06标记为(2), 将30标记为(3)。

    空白空间

    空格语法为” \ s”, 制表符空间语法为” \ t”。

    例:

    echo -e 'this\tis\tsrcmini' | sed 's/\s/ /g'

    linux-sed-regular-expression6.png

    看上面的快照, ” \ s”用于单个空格。

    可选发生

    你可以通过使用(?)问号来指定可选内容。

    例:

    cat list2 | sed 's/iii\?/Y/'

    linux-sed-regular-expression7.png

    看上面的快照, 我们将第三个” i”作为可选项。需要指出的是, 必须将两个” i”转换为” Y”。

    确切的n次出现

    确切的发生时间由” {times}”指定。

    例:

    cat list2 | sed 's/i\{3\}/Y/'

    linux-sed-regular-expression7-1.png

    看上面的快照, 我们已经精确地指定了” i”出现的三倍。

    发生范围

    我们还可以根据范围来指定发生次数。例如, 如果将范围指定为{m, n}, 则’m’表示最小发生次数, ‘n’表示最大发生次数。

    例:

    cat list2 | sed 's/i\{3, 4\}/Y/'

    linux-sed-regular-expression8.png

    看上面的快照, 我们将最小范围指定为3, 最大范围指定为4。

    展开全文
  • 修改指令如下: echo "127.0.0.1 www.hknaruto.com" >> /etc/hosts sed -i 's/[0-9\.]\+[ ]\+... 说明: 1. 先写入一条记录用于匹配(根据需要调整或直接不要) ...2. 通过sed正则匹配,替换记录值 ...
  • 关于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检索时需要在关键字前加-...
  • demo 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=\
  • sed -i 's/^[[:space:]]\+//g' /tmp/grub.conf 3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符sed -i 's/^#[[:space:]]\+//g' /tmp/rc.sysinit 4、为/tmp/grub.conf...
  • perl正则表达式中.*?表示非贪婪模式, .*贪婪模式, vim和sed中则无法使用 贪婪模式中u’.*'会匹配到u'a', u'test', u'string' 需求是每个u’.*'匹配到u'a' u'test' u'string' 这样,并修改替换 results = [ u'...
  • Linux sed 关键字匹配整行中任意字符进行替换(正则表达式整行替换) Linux sed 关键字匹配整行中任意字符进行替换(整行替换) 语法: sed -i 's/.*要查找的字串符.*/要替换的字串符/' a.txt 实战示例: 场景: 查找...
  • 正则– 基础正则 ^word ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$ ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$ ##表示空行 . ##代表且只能代表任意一个字符 \ ##例:\. 只代表点本身,转义符号,让...
  • 好了,搞起~ 过滤字符,shell工具常用的还是grep、awk、sed 提炼正则条件之后,三者通吃 条件 含义 ^ 匹配开头 $ 匹配结尾 [0-9]{3} 匹配字符集0-9内,3个字符 | 或 这里匹配该条件的正则表达式:’^([0-9]{3}-|([0...
  • linux 正则匹配小记

    2021-05-14 00:57:54
    1.使用正则匹配文件名## 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...
  • 文本处理: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’在...
  • -name "*.txt" | xargs grep -P 'regex' -oxargs会将find结果作为grep的输入,防止find结果过多无法处理-P参数表明要应用正则表达式-o表示只输出匹配的字符串,这样我们就可以把正则匹配到的结果拿到了。Linux、Mac...
  • 正则匹配替换 目标:将配置文件的“option domain-name-servers 127.0.0.53”的“127.0.0.53”部分替换掉。 解决思路:我没能做到只替换ip部分,因为sed替换了识别到的整个部分。所以最后是替换整体 相关参数(命令...
  • 打印匹配到的行模式:由正则表达式字符及文本字符所编写的过滤条件选项:–color=auto 对匹配到的文本着色显示-v 显示没有被匹配到的行-i 忽略大小写匹配-n 显示匹配到的行号-c 统计匹配到的行总数-o 仅显...
  • linux正则表达式sed

    千次阅读 2021-05-10 04:05:14
    sed、awk工具可以实现文本替换并且把替换的文本输出到屏幕上sed和awk都是流式编辑器,是针对文档的行来操作的。sed通常用来替换操作。示例的文本内容,以下操作根据此文本。[root@yonglinux~]#cattest.txtrot:x:0:0:...
  • 网上很多正则表达式替换内容艘是通过编辑器操作,而没有命令行,所以补上一个用sed的搜索查找替换的功能实现内容替换,并保留部分内容。 需求 原文件内容 I come from {U+5E7F}{U+5DDE}. 目标文件内容 I come...
  • 只显示每行的第一个单词[root@localhost ~]# sed -r 's/([^0-9a-Z]+)(.+)//gp' passwdrootbindaemonadm打印每行3次:sed 'p;p' passwd 每一个p代表一次打印,如果没有p则打印一遍,之后没多一个p就会多一次打印[root...
  • cat:文件查看cat [OPTION]... [FILE]...-E:-E: 显示行结束符$-n: 对显示出的每一行进行编号-A:显示所有控制符-b:非空行编号-s:压缩连续的空行成一行more:分页.../文本搜索文本n/N跳到下一个或上一个匹配les...
  • 正则表达式使用圆括号分组,在sed中,使用形如\1取分组1的匹配Linuxsed -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
  • Linux Sed命令详解(文本处理工具 - 匹配,替换,添加等),优化投产步骤,使用命令批量修改抽数脚本代替逐个vim
  • Linux中的awk、sed、grep及正则表达式详解 简介 awk、sed和grep是Linux中文本操作的三大利器。 其中awk适用于取列,sed适用于取行,grep适用于过滤。 正则表达式 首先我们来介绍一下正则表达式,正则表达式(regular ...
  • sed数据处理工具sed数据处理工具其实也是一个管道命令sed 【-nerf】 操作-n使用安静模式 不在屏幕输出-e 在命令行模式进行操作-f 执行文件内的操作-r 使用扩展正则表达式方法-i 直接修改文件内容不在屏幕输出n1,n2 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,816
精华内容 9,126
关键字:

linux sed正则匹配