精华内容
下载资源
问答
  • 语法 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
    效果:
    在这里插入图片描述

    展开全文
  • 修改指令如下: echo "127.0.0.1 www.hknaruto.com" >> /etc/hosts sed -i 's/[0-9\.]\+[ ]\+... 说明: 1. 先写入一条记录用于匹配(根据需要调整或直接不要) ...2. 通过sed正则匹配,替换记录值 ...

    修改指令如下:

    echo "127.0.0.1 www.hknaruto.com" >> /etc/hosts
    sed -i 's/[0-9\.]\+[ ]\+www.hknaruto.com/127.0.0.2 www.hknaruto.com/g' /etc/hosts

    说明:

    1. 先写入一条记录用于匹配(根据需要调整或直接不要)

    2. 通过sed正则匹配,替换记录值

    测试效果

    ping -c 1  www.hknaruto.com
    PING www.hknaruto.com (127.0.0.2) 56(84) bytes of data.
    64 bytes from www.hknaruto.com (127.0.0.2): icmp_seq=1 ttl=64 time=0.023 ms
    
    --- www.hknaruto.com ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.023/0.023/0.023/0.000 ms
    

     

    展开全文
  • 要求 一个字符串由姓名,年龄,性别组成,如mstr4r17Man 将这个字符串用逗号将姓名,年龄,性别分开,如mstr4r,17,Man 解决方法 使用$,$用于代替之前...echo "mstr4r17Man" | sed "s/[0-9]\{1,3\}/,&,/g" ...

    要求

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

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

    解决方法

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

    echo "mstr4r17Man" | sed "s/[0-9]\{1,3\}/,&,/g"
    
    展开全文
  • 正则表达式概述使用单个字符来描述、匹配一系列符合某个语句规则的字符串,由普通字符与特殊字符组成,正则表达式广泛使用在脚本编程、文本编辑器中。正则表达式简写为regex、regexp、RE。再大多数语言当中正则...

    正则表达式概述

    使用单个字符来描述、匹配一系列符合某个语句规则的字符串,由普通字符与特殊字符组成,正则表达式广泛使用在脚本编程、文本编辑器中。

    正则表达式简写为regex、regexp、RE。

    再大多数语言当中正则表达式都被包括在两个正斜杠当中“/”

    正则表达式有一个特点“贪婪匹配”:尽量匹配最长的

    正则表达式分类

    基础正则表达式

    \ 转义字符。例如:“!”将逻辑否的!看做普通字符,\还可以折行

    例子1:

    [root@localhost ~]# ls -l /home \

    > /tmp

    例子2:

    [root@localhost ~]# grep "b.*in" a.txt

    12 bin 34

    23 sb.*in 23

    44 binary 49

    23 binlog 23

    [root@localhost ~]# grep "b\.\*in" a.txt

    23 sb.*in 23

    ^ 匹配字符串开始的位置,以…为开头的

    $ 匹配字符串结束的位置,以…为结尾的

    ^$ 表示空行,不是空格

    例子:

    [root@localhost ~]# cat a.txt

    aa

    aa bb aa

    a b a

    [root@localhost ~]# grep "^aa$" a.txt

    aa

    . 匹配任意字符串

    * 匹配前面子表达式(字符)0次或者多次

    例子:

    [root@localhost ~]# grep "a 0*" a.txt

    aa 0

    aa 00

    aa bb 0000 aa 00

    a b a 000

    .* 匹配任意字符串

    [list] 匹配list列表中的一个字符,例如:[abc]、[a-z]、[a-zA-Z0-9]

    例子:

    [root@localhost ~]# ifconfig ens32 | grep "TX [pe]"

    TX packets 1776 bytes 206946 (202.0 KiB)

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [^list] 匹配任意非list表中的一个字符,例如:[^a-z]、[^0-9]、[^A-Z0-9]

    例子:

    [root@localhost ~]# ifconfig ens32 | grep "TX [a-f]"

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [root@localhost ~]# ifconfig ens32 | grep "TX [^a-f]"

    TX packets 1814 bytes 210662 (205.7 KiB)

    \{n\} 匹配前面子表达式n次

    例子:

    [root@localhost ~]# grep "a 0\{2\}" a.txt

    aa 00

    aa bb 0000 aa 00

    a b a 000

    \{n,\} 匹配前面子表达式至少n次

    [root@localhost ~]# grep "a 0\{2,\}" a.txt

    aa 00

    aa bb 0000 aa 00

    a b a 000

    \{n,m\} 匹配前面子表达式最少n次,最大m次

    \< 词首牟定:固定词首

    \> 词未牟定:固定词尾

    例子:

    [root@localhost ~]# grep "\" a.txt

    a b a 000

    转义字符

    意义

    \a

    响铃(BEL)

    \b

    退格(BS),将当前位置移到前一列

    \n

    换行(LF)将当前位置移到下一行的开头

    \r

    回车(CR)将当前位置移动到本行开头

    \t

    水平制表(HT)调到下一个TAB位置

    \v

    垂直制表(VT)

    \

    代表一个反斜杠字符“\”

    扩展正则表达式

    +匹配前面子表达式1次及以上

    ? 匹配前面子表达式0次或者1次

    () 将括号中的字符串作为一个整体

    | 以或的方式匹配字符

    Linux常用的文本处理工具

    grep 匹配,查询(过滤)

    sed 编辑(增加,删除,修改)

    awk 文本格式化(字符串提取)

    注意事项

    Linux中正则一般以行为单位处理文件

    alias grep=‘grep --color=auto’

    注意字符集,LANG=C

    通配符

    正则表达式和我们命令行中使用的通配符是有本质区别的。

    通配符一般是处理文件名的

    ls -l .txt:任意长度任意字符串,属于通配符。

    ?:单个任意字符串,属于通配符。

    grep命令的参数:

    -v 排除匹配的内容(取反)

    -E 支持扩展正则表达式=egrep

    [root@localhost ~]# grep -Ev "^$|#" /etc/httpd/conf/httpd.conf

    ServerRoot "/etc/httpd"

    Listen 80

    Include conf.modules.d/*.conf

    -i 忽略大小写

    [root@localhost ~]# cat a.txt

    aAAA

    [root@localhost ~]# grep -i "a" a.txt

    aAAA

    [root@localhost ~]#

    -o 只输出匹配的内容

    [root@localhost ~]# grep -o "root" /etc/passwd

    root

    root

    –color=auto 匹配的内容显示颜色(用的不多 alias查看别名)

    -n 在行首显示行号

    [root@localhost ~]# grep -n "root" /etc/passwd

    1:root:x:0:0:root:/root:/bin/bash

    10:operator:x:11:0:operator:/root:/sbin/nologin

    43:admin:x:1000:1000:root:/home/admin:/bin/bash

    -q 匹配内容不显示(静默输出,一般写脚本的时候用而不输出到屏幕)

    -w 将过滤条件当成单词来匹配

    [root@localhost ~]# grep -w "bin" /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    sync:x:5:0:sync:/sbin:/bin/sync

    admin:x:1000:1000:root:/home/admin:/bin/bash

    [root@localhost ~]# grep "bin" /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    -c 只输出匹配行的计数

    [root@localhost ~]# grep -c "root" /etc/passwd

    3

    展开全文
  • sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的...
  • Linux 删除正则匹配

    千次阅读 2011-07-12 11:23:27
    sed -i '/[^a-zA-Z0-9\.\-]/d' domain.txt
  • Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find ....amp;amp;quot;*.txt&...xargs会将find结果作为grep的输入... -o表示只输出匹配的字符串,这样我们就可以把正则匹配到的结果拿到了。 L...
  • Linux sed正则表达式

    2013-06-01 16:31:00
    一、元字符集 ^  锚定行的开始如:/^sed/匹配所有以sed开头的行。 $  锚定行的结束如:/sed$/匹配所有... 匹配零或多个字符如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 []  匹配一个指定范围...
  • 文本处理:sed 1.sed工作流程 sed读一行放到模式空间进行处理 sed是一种在线的、非交互式的编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,成为模式空间,接着用sed命令处理缓冲区中的内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 973
精华内容 389
关键字:

linuxsed正则匹配

linux 订阅