精华内容
下载资源
问答
  • 基于linux下的字符匹配

    千次阅读 2018-06-13 09:09:33
    字符匹配:建立文件: touch "fi le" "fiale" "fiAle" "fi?le" "fi6le"[[:alpha:]] 匹配单个字母 格式: rm -fr fi[[:alpha:]]le结果如下图所示:[[:lower:]]...

    字符匹配:

    建立文件:       touch "fi le" "fiale" "fiAle" "fi?le" "fi6le"

    [[:alpha:]]     匹配单个字母     格式:

                          rm -fr fi[[:alpha:]]le

    结果如下图所示:


    [[:lower:]]     匹配单个小写字母

    [[:upper:]]     匹配单个大写字母

    [[:digit:]]     匹配单个数字

    [[:alnum:]]     匹配单个数字或字母

    [[:punct:]]     匹配单个符号

    [[:space:]]     匹配单个空格


    当我们没有加通配符时候每次删除都要询问是否删除,加上通配符之后就会把相应功能的文件删除掉,我们在操作时候可以上下翻命令,为了更好地呈现效果,每次我们删除掉之后重新建立一下所有文件以便观察。再就是需要每天练习熟悉相应的命令。

    练习:将etc目录下面的带数字的还有.conf文件移出来到桌面:

    cp /etc/*[[:digit:]]*.conf .

    这个命令中一个就是*代表匹配所有字符,然后.代表就是移动到当前路径。


    [^[:digit:]] [![:digit:]]指不是数字的两种表示方法,意味着^和!的功能一样。这个有时候在我们删除文件时候也特别有用,呈现如下:如下图我们可以很明显的看到除了字母数字其他的全部被删除了。


    {}指定的目标 touch file{1..3}

    指定的目标的意思就是比如touch file{1..3},即建立三个文件file1,file2,file3。


    {1..9}          1-9

    {a..f}          a-f

    {1,3,5}         135     (逗号的功能就是表示具体的1,3,5三个文                              件)

    {a,c,e}         a c e     (指具体的a c e文件)

    {1..3}{a..c}    1a 2a 3a 2a 2b 2c 3a 3b 3c

    touch file{a..c}{1..3}指九个,排列的方式。


    生成文件的部分截图如下,实际上应该有6*9=54个文件。


    []模糊的目标touch file[1-3]

    []表示模糊匹配,里面的内容是条件

    [a-C]                 aA bB cC

    [a-c]                 aA或者bB或者c

    [1-3]                 1或者2或者3

    [145]                 或者4或者5

    [^abc] [!abc]          除了a并且除了b并且除了c


    rm -fr file[26]      指2或者6,意思移除file2和file6。

    rm -fr file[!26]*      指不是2或者6,意思将建立的文件夹全部删除加上删除的2和6。



    模糊的目标的意思就是里面的文件是或者关系,touch file[1-3]表示建立文件一或者文件二或者文件三。并不要求全部都有。

    举个例子:比如file3就可以和touch file[1-3]匹配,而不可以和touch file{1..3}匹配,因为后者要求一二三文件均存在。

    练习:

    用命令和正则表达式按照要求建立文件

    用一条命令建立 12 个文件 WESTOS_classX_linuxY(X 的数值范围为 1-2 , Y 的数值范围为(1-6)

    touch WESTOS_class{1..2}linux{1..6}

    这些文件都包含在 root 用户桌面的 study 目录中

    mkdir study

    mv WESTOS_class* study

    用一条命令建立 8 个文件 redhat_versionX ( x 的范围为 1-8 )

    touch redhat_version{1..8}

    redhat_virsionX 这些文件都包含在 /tmp 目录中的 VERSION 中

    mkdir /tmp/VERSION

    mv redhat_version* /TMP/VERSION

    管理刚才新建立的文件要求如下

    用一条命令把 redhat_versionX 中的带有奇数的文件复制到桌面的 SINGLE 中

    mkdir SINGLE

    mv /tmp/VERSION/redhat_version{1,3,5,7} SINGLE

    用一条命令把 redhat_versionX 中的带偶数数的文件复制到 /DOUBLE 中

    mkdir DOUBLE

    mv /tmp/VERSION/redhat_version{2,4,6,8} DOUBLE

    用一条命令把 WESTOS_classX_linuxY 中 class1 的文件一动到当前用户桌面的 CLASS1 中

    mkdir CLASS1

    mv /study/WESTOS_class[1]linux* CLASS1

    用一条命令把 WESTOS_classX_linuxY 中 class2 的文件一动到当前用户桌面的 CLASS2 中

    mkdir CLASS2

    mv /study/WESTOS_class[2]linux* CLASS2

    备份 /etc 目录中名字带有数字并且以 .conf 结尾的文件到桌面上的 confdir 中

    CP /etc/*[[:digit:]]*.conf .

    删掉刚才建立或者备份的所有文件

    rm -rf*

    rm -rf /tmp/VERSION*

    部分截图如下:




    ***对于作业就是得多练习,再就是我们做题之前要学会观察,比如移动目录时我们要先观察目录是否存在,不存在的话先建立然后进行其他操作。还有我们得对ls命令熟练掌握,这个可以帮助我们观察作业的正确性,最后就是注意绝对路径还有就是注意别犯一些打错字符缺少字符的小毛病!

    展开全文
  • linux查找、匹配、更改文件字符

    千次阅读 2018-12-13 00:42:34
    查找目录下的所有文件中是否含有某个字符串 ...(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、、?等)组成。 (2)基本元字符集及其含义 ^ :只匹...

    查找目录下的所有文件中是否含有某个字符串
    find .|xargs grep -ri “IBM”
    查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
    find .|xargs grep -ri “IBM” -l
    1.正则表达式
    (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、、?等)组成。
    (2)基本元字符集及其含义
    ^ :只匹配行首。 如^a 匹配以a开头的行abc,a2e,a12,aaa,…
    $ :只匹配行尾。 如^a 匹配以a结尾的行bca,12a,aaa,…
    * :匹配0个或多个此单字符。 如(a)
    匹配 空,a,aa,aaa,…
    [] :只匹配[]内字符。可以是一个单字符,也可以是字符序列,用",“将里面要匹配的不同字符串分开。也可以使用-来表示[]内字符序列的范围,如[1-5]表示[12345]
    \ :只用来屏蔽一个元字符的特殊含义。 如*,’,”,|,+,^,. 等
    .:(点)只匹配任意单字符。
    pattern{n}:只用来匹配前面pattern出现的次数.n为次数。如a{2}匹配aa.
    pattern{n,}:含义同上,但次数最少为n.如a{2,}匹配aa,aaa,aaaa,…
    pattern{n,m}:含义同上,但次数在n和m之间。如a{2,4}匹配aa,aaa,aaaa三个
    (3)举例说明:
    ^$ :匹配空行
    ^.$ :匹配包含一个字符的行
    *.pas :匹配以*.pas结尾的所有字符或文件
    [0123456789]或[0-9] :假定要匹配任意一个数字
    [a-z] :任意小写字母
    [A-Za-z] :任意大小写字母
    [S,s] :匹配大小写S
    [0-9]{3}.[0-9]{3}.[0-9]{3}.[0-9]{3} :匹配IP地址 [0-9]{3}三个0-9组成的字符串;. :匹配点(注意这里点是特殊的字符,所以要用"“来屏蔽其含义)
    2.find介绍 (1)查找具有某些特征文件的命令,可遍历当前目录甚至于整个文件系统来查看某些文件或目录,其遍历大的文件系统时一般放在后台执行。
    (2)find命令的一般形式
    find pathname -options [-print -exec -ok]
    -pathname :find命令所查找的目录路径。如用”.“来表示当前的目录,用/来表示系统根目录
    -print :find命令将匹配的文件输出到标准输出
    -exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的命令形式为
    ‘command’{} ; (注意{}和\之间的空格)
    -ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
    options有如下几种:
    -name :按照文件名查找文件
    -perm :按照文件权限来查找文件
    -user :按照文件属主来查找文件
    -group :按照文件所属的组来查找文件
    -mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime 和-ctime选项,但它们都和-mtime选项相似。
    -size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。
    -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
    -newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件
    -depth 先查找指定目录有无匹配文件,若无则再在子目录中查找
    -type 查找某一类型的文件,如
    b :块设备文件
    d:目录
    e:字符设备文件
    p;管道文件
    l:符号链接文件
    f:普通文件
    (3)find命令举例
    find -name “*.txt” -print 查找txt结尾的文件并输出到屏幕上
    find /cmd “.sh” -print 查找/cmd目录下所有sh文件,并输出
    find . -perm 755 -print 查找当前目录下权限为755的文件,并输出
    find pwd -user root -print 查找当前目录下属主为root的文件,并输出
    find ./ -group sunwill -print 查找当前目录下所属主是sunwill的文件
    find /var -mtime -5 -print 查找/var目录下更改时间为5天内的所有文件
    find /var -mtime +5 -print 查找/var目录下更改时间为5天以前的所有文件
    find /var -newer “myfile1” ! -newer “myfile2” -print 查找/var目录下比myfile1新,但是比myfile2旧的所有文件。
    find /var -type d -print 查找/var目录下所有目录
    find /var -type l -print 查找/var目录下所有的符号链接文件。
    find . -size +1000000c -print 查找当前目录下大于1000000字节的文件
    find / -name “con.file” -depth -print 查找根目录下有无"con.file”,若无则在其子目录中查找
    find . -type f -exec ls -l {} ; 查找当前目录下是否有普通文件,若有则执行ls -l
    (4)xargs命令
    在 使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec。不幸的是,有些系统对能够传递给exec的命 令长度有限制,这样find命令运行几分钟之后就算出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs的用处所在,特别是与 find命令一起使用,exec会发起多个进程,而xargs会多个,只有一个
    find ./ -perm -7 -print | xargs chmod o-w 查找权限为7的文件并传递给chmod处理
    3.grep介绍 (1)grep 的一般格式为 grep [options] 基本正则表达式 [文件]
    字符串参数最好采用是双引号括,一是以防被误解为shell命令,二是可以用来查找多个单词组成的字符串
    -c:只输出匹配行的记数
    -i:不区分大小写(只适用于单个字符)
    -h:查询多个文件时不显示文件名
    -H:只显示文件名
    -l:查询多文件时只输出包含匹配字符的文件名
    -n:只显示匹配行及其行号
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。
    (2)举例说明:
    grep [210] myfile 匹配myfile中以非2、1、0开头的行
    grep “[5-8][6-9][0-3]” myfile 匹配myfile中第一位为5|6|7|8,第二位6|7|8|9,第三位为0|1|2|3的三个字符的行
    grep “4{2,4}” myfile 匹配myfile中含有44,444或4444的行
    grep “?” myfile匹配myfile中含有任意字符的行
    (3)grep命令类名
    [[:upper:]] 表示[A-Z]
    [[:alnum:]] 表示[0-9a-zA-Z]
    [[:lower:]] 表示[a-z]
    [[:space:]] 表示空格或者tab键
    [[:digit:]] 表示[0-9]
    [[:alpha:]] 表示[a-zA-Z]
    如:grep “5[[:digit:]][[:digit:]]” myfile 匹配myfile中含有5开头接下去两位都是数字的行。
    4.awk介绍
    可以从文件或字符串中基于指定规则浏览和抽取信息,是一种自解释的变成语言。
    (1)awk命令行方式 awk [-F filed-spearator] ‘command’ input-files
    awk脚本:所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。awk脚本是由各种操作和模式组成。
    模式部分决定动作语句何时触发及触发事件。(BEGIN,END)
    动作对数据进行处理,放在{}内指明(print)
    (2)分隔符、域和记录
    awk执行时,其浏览域标记为$1, 2 , . . . 2,... 2,...n.这种方法成为域标识。$0为所有域。
    (3)举例说明:
    awk ‘{print $0}’ test.txt |tee test.out 输出test.txt中所有行$0表示所有域
    awk -F : ‘{print $1} test.txt |tee test.out’ 同上。。只是分隔符为":"
    awk ‘BEGIN {print “IPDate\n”}{print $1 “\t” $4} END{print “end-of-report”}’ test.txt
    开始时打印“IPDate”结束时打印“end-of-report”中间打印主体信息,比如总共匹配三条信息,则输出如下:
    IPDate
    1 first
    2 second
    3 third
    end-of-report
    (4)匹配操作符 ~ 匹配,!~ 不匹配
    cat test.txt |awk ‘$0~/210.34.0.13/’ 匹配test.txt中为210.34.0.13的行
    awk ‘$0!~/210.34.0.13’ test.txt 匹配test.txt中不是210.34.0.13的行
    awk ‘{if($1==“210.34.0.13”) print $0}’ test.txt 匹配 test.txt中第一个域为210.34.0.13的行。

    5.sed介绍
    sed不与初始化文件打交道,它操作的只是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕。
    sed是一种很重要的文本过滤工具,使用一行命令或者使用管道与grep与awk相结合。是一种非交互性文本流编辑。
    (1)调用sed的三种方式
    使用sed命令行格式为:sed [options] sed命令 输入文件
    使用sed脚本文件格式为:sed[options] -f sed脚本文件 输入文件
    sed脚本文件[options] 输入文件
    –不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。
    (2)sed 命令的options如下
    -n:不打印
    -c:下一命令是编辑命令
    -f:如果正在调用sed脚本文件
    (3)sed在文件中查询文本的方式
    –使用行号,可以是一个简单的数字,或是一个行号的范围
    –使用正则表达式
    (4)读取文本的方式
    x x为一行号
    x,y 表示行号范围从x到y
    /pattern/ 查询包含模式的行
    /pattern/pattern/ 查询包含两个模式的行
    pattern/,x 在给定的行号上查询包含模式的行
    x,/pattern/ 通过行号和模式查询匹配行
    x,y! 查询不包含指定行号x和y的行
    (5)基本sed编辑命令
    p 打印匹配行
    d 删除匹配行
    = 显示文件行号
    a\ 在定位行号后附加新文本信息
    i\ 在定位行号后插入新文本信息
    c\ 用新文本替换定位文本
    s 使用替换模式替换相应模式
    r 从另一个文件中读文件
    w 写文本到一个文件
    q 第一个模式匹配完成后推出或立即退出
    l 显示与八禁止ASCII代码等价的控制字符
    {} 在定位行执行的命令组
    n 从另一个文件中读文本下一行,并附加在下一行
    g 将模式2粘贴到/pattern n/
    y 传送字符
    (6)举例说明:
    sed -n ‘2p’ test.txt 打印第二行的信息(注意:-n是不打印不匹配的信息,若没加-n,则打印文件的所有信息而不是匹配信息)
    sed -n ‘1,4p’ test.txt 打印第一行到第四行的信息
    sed -n ‘/los/p’ test.txt模式匹配los,并打印出来
    sed -n ‘2,/los/p’ test.txt 从第二行开始。。知道匹配第一个los
    sed -n ‘/^$/p’ test.txt 匹配空行
    sed -n -e ‘/^$/p’ -e ‘/^$/=’ test.txt 打印空行及行号
    sed -n ‘/good/a\morning’ test.txt 在匹配到的good后面附加morning
    sed -n ‘/good/i\morning’ test.txt 在匹配到的good前面插入morning
    sed -n ‘/good/c\morning’ test.txt 将匹配到的good替换成morning
    sed ‘1,2d’ test.txt 删除第1和2行
    sed ‘s/good/good morning/g’ test.txt 匹配good并替换成goodmorning
    send ‘s/good/& hello /p’ test.txt 匹配到good就在其后面加上hello
    send ‘s/good/ hello &/p’ test.txt 匹配到good就在其前面加上hello
    6.合并与分割(sort,uniq,join,cut,paste,split) (1)sot命令
    sort [options] files 许多不同的域按不同的列顺序排序
    -c 测试文件是否已经排序
    -m 合并两个排序文件
    -u 删除所有同样行
    -o 存储sort结果的输出文件名
    -t 域分隔符,用非空格或tab开始排序
    +n :n 为列号,使用此列号开始排序
    -n 指定排序是域上的数字分类项
    -r 比较求逆
    sort -c test.txt 测试文件是否分类过
    sort -u test.txt 排序并合并一样的行
    sort -r test.txt 以相反的顺序排列
    sort -t “/” +2 test.txt 以"/"分隔,第二个域开始分类
    (2)uniq命令
    uniq [options ] files 从一个文本文件中去除或禁止重复行
    -u 只显示不重复行
    -d 只显示有重复数据行,每种重复行只显示其中一行
    -c 打印每一重复行出现次数
    -f :n为数字,前n个域被忽略
    uniq -f 2 test.txt 忽略前2个域
    (3)join 命令
    join [options] file1 file2 用来将来自两个分类文本文件的行连在一起
    -an,n为一数字,用于连接时从文件n中显示不匹配行
    -onm ,连接域,n为文件号,m为域号
    -jnm,n为文件号,m为域号,使用其他域作连接域
    -t ,域分隔符。用来设置非空格或tab键的域分隔符。
    (4)split命令
    split -output_file_size intput_filename output_filename
    用来将大文件分割成小文件。
    -b n,每个分割文件的大小n
    -C n,每个分割文件一行最多n字节
    -l n,每个分割文件的行数
    -n,同-l n
    split -10 test.txt 将test.txt分割成10行的小文件
    (5)cut 命令
    cut -c n1-n2 filename 显示每行从开头算起 n1 到 n2 的文字。
    cut -c 3-5 test.txt 显示test.txt中每行从第3到第5个字符

    转自:https://blog.csdn.net/duguduchong/article/details/7716908

    展开全文
  •  假如,我们要对一行文本进行字符串替换,有什么办法?相信很多人都有各种各样的办法,这里就不废话了……  进一步的需求,如果我们要替换的不是固定字符串,而是含有某种模式的字符串怎么办?也很简单,正则...

            今天从经营部门拿到一批数据,结果虽然需要的数据都有,但是格式完全是乱的,所以没办法,我只能自己重新排格式,这才有了接下来要介绍的东西……

            假如,我们要对一行文本进行字符串替换,有什么办法?相信很多人都有各种各样的办法,这里就不废话了……

            进一步的需求,如果我们要替换的不是固定字符串,而是含有某种模式的字符串怎么办?也很简单,正则表达式……

            最后的需求,虽然正则表达式允许我们动态匹配字符串,但是却没有给我们动态生成替换串的能力。比如,我们并不是将所有的匹配串都替换为固定内容,而是我们首先需要先匹配一个数字,然后在这个数字的基础上进行一些修饰,比如加前缀或者加后缀。

            针对这个需求,可以使用sed替换功能中的"&"技巧,“&”在替换命令中,表示匹配串的内容,举个例子:

    echo 'jack to alice : i love you' | sed 's/you$/& and me/'

            这条命令的sed部分表示,首先匹配一个以you结尾的串,然后将这个串加上"空格and空格me"的后缀,最终的输出就是:

    jack to alice : i love you and me

            不过,事情有时并非如此简单,有些数据加上一些前缀或者后缀就OK了,但是有些数据的位置是颠倒的,这该怎么办?比如,我们需要将jack和alice的位置对换

            基于这个需求,sed的替换功能中,有一种替换模式,我个人管它叫拆分替换模式(实在是没找到官方是怎么叫的),这种默认允许我们任意修改匹配串的内容,并且加之前缀和后缀,举个例子:

    jack to alice : i love you' | sed 's/\(jack\)\( to \)\(alice\)/\3\2\1/'

            这条命令的sed部分表示,我们要将匹配串拆分成3个部分,每个部分都用括号括起来(注意,括号需要斜杠进行转义),然后将三个部分按照3 2 1的顺序重新排列,上面的命令可能比较乱,下面给出一个比较清楚的模型

    sed s / (模式1)(模式2)(模式3) / \3 \2 \1 /

            这里需要注意的地方有:

    1、所有模式的括号必须转义,上面为了看上去不乱,所以对括号都没有转义

    2、模式必须连续,即上述的三个模式在原串中,必须是连续匹配的,中间不能有任何其他字符存在。举例来说,我们给出的实际命令中,jack是第一个模式," to "是第二个模式,alice是第三个模式,其中第二个模式" to "必须写上to这个单词左右的两个空格,如果没有这两个空格,则命令中的三个模式就不是连续模式,而sed也就拒绝进行修改
    3、我们可以在替换串部分加上一些必要的修饰,即允许出现“s/.../\3这里可以写点东西\2\1 ”这样的替换串

    4、替换串可以不显示全部模式串,即虽然我们匹配了3个模式串,但是却可以在替换的时候,忽略其中的1个或n个,举例来说,"s/.../\3\1/"这种格式也是允许的,即我们在替换之后,要求删除第二个模式,并交换1和3模式

    展开全文
  • linux精确匹配字符

    千次阅读 2018-09-30 18:03:54
    1,问题:现有一text.txt文本内容如下:  ni hao ma n  yin gn n nin 现要用 'en' 将单个单词 n(下划线)替换掉   尝试的方法一:  sed -i 's/n/en/g' text.txt 结果:  eni hao ma en  yien gen en...

    1,问题:现有一text.txt文本内容如下:

        ni hao ma n

        yin gn n nin

    现要用 'en'  将单个单词 n(下划线)替换掉

     

    尝试的方法一:

      sed  -i 's/n/en/g' text.txt

    结果:

        eni hao ma en

        yien gen en enien

    也就是所有的n字符都被替换,而我希望的是仅仅是单词n(下划线所指)被替换

     

    尝试方法二:

       sed -i 's/ n / en /g' text.txt          在n 和en两边加了两个空格

    结果:

         ni hao ma n

         yin gn en nin

      出现的问题是第一行最后一个单词n未被替换

     

    网上找了好久,终于找到精准匹配和替换的方法:

        sed -i 's/\<n\>/en/g'  text.txt

     结果如下:

     

        ni hao ma en

        yin gn en nin

    --------------------- 本文来自 yychenxie21 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/chenxieyy/article/details/52919009?utm_source=copy

    展开全文
  • 1 字符串的更具字符分割 1) xargs分割 echo "chenyu*hello*word" | xargs -d "*" chenyu hello word 2)awk分割 echo "chenyu*hello*word" | awk -F "*" '{print $1}' chenyu 2字符串的删除字符...
  • Linux c语言实现修改文本字符

    千次阅读 2016-05-03 15:18:25
    要在Linux c 程序里面实现文本字符串读写,百度一下,都是比较简单的字符串处理,并没有类似的说明,后来换成bing 找到一些蛛丝马迹 http://bbs.csdn.net/topics/390016741 这个CSDN的 topic 不错 虽然没有直接...
  • 文本a.cfg大致如下:  "export": {  "table": [  {  "cb": "default",  "fn": "T_ORDER.csv",  "sql": "select f_order_no, f_inst_id from t_order where f_apply_date = '%s'",
  • Linux有着强大的文本处理命令,最近线上日志比较大,一天好几个G,所以没有存入数据库,而是直接切到文件中,这样查看日志就得学会Linux文本处理了,这里简单介绍一下最近用到的几个文本匹配的命令,欢迎大家支出...
  • 要求 一个字符串由姓名,年龄,性别组成,如mstr4r17Man ...使用$,$用于代替之前匹配出来的字符串,,&,表示在匹配出来的字符串前后加一个逗号 echo "mstr4r17Man" | sed "s/[0-9]\{1,3\}/,&,/g" ...
  • 利用java的IO读取文本数据,通过正则表达式匹配固定格式内容,然后将匹配出来的数据写入到另一个文件。 java具体代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; ...
  • linux中批量替换文本字符

    千次阅读 2019-06-13 23:08:33
    (一)通过vi编辑器来...vi/vim 中可以使用 :s 命令来替换字符串。 :s/well/good/ 替换当前行第一个 well 为 good :s/well/good/g 替换当前行所有 well 为 good :n,$s/well/good/ 替换第 n 行开始到最后一行中每一...
  • --color : 匹配到的字符用颜色标亮 -E : 表示用正则表达式进行匹配搜索 grep --color -E "le\b" Harry.txt \b:词界符。该语句表示le必须位于一个有意义的单词的最后方 grep --color -E "\b[Mm]uggle." Harry....
  • 我们一般查看一个字符串在一个文本中出现在哪行,一般使用的命令如下 比如 查看catalina.out 中 a 出现的行,如下 less catalina.2018-12-17.out |grep a 如果说想要同时查看多个字符串出现的行,怎么处理呢 小...
  • Linux下快速替换文本中的字符

    千次阅读 2017-10-22 00:35:41
    Linux下快速替换文本中的字符串 替换单个文本中的所有字符串 方法1: 使用vim打开文本文件 cyf@ubuntu:~$ vim test.txt 使用vim中的替换命令:%s/原字符串/替换字符串/gg 方法2: cyf@ubuntu:~$ sed -i 's/原...
  • Linux】grep 匹配多个关键字

    万次阅读 多人点赞 2018-12-11 18:57:04
    grep 命令非常常用,经常用于匹配文本字符。 一般情况下,grep 命令只能匹配一个关键字,怎么实现匹配多个关键字呢? 下面看几种情况: 1、 grep ‘字符串’ 这是最普通的使用方式: 匹配文件中包含 MANPATH 的那一...
  • 直接来个例子: 比较字符
  • Linux文本搜索命令

    2020-08-03 22:47:00
    Linux文本搜索命令 一、grep 1、作用: ​ grep (全称:Global Regular Expression Print,译为:全局正则表达式打印 )是 Linux 系统中一种强大的文本搜索命令或者说工具,所以它能与正则表达式一起使用来搜索...
  • Linux文本处理命令

    千次阅读 2015-07-24 10:11:19
    正则表达式POSIX标准将正则表达式分为两类 1.基本的正则表达式 2.扩展的正则表达式 ... 匹配任意字符 ^ 行首,在[]中表示非 $ 行尾 [] 匹配字符集合 \ 转义字符 \ 精确匹配符号 \{n\} 匹配n次 \
  • 图中的例子就是统计文本中”hello”字符串出现的次数 2.GREP配合wc命令 grep -o "hello" demo.log | wc -l 如下图: 另外附上几个grep常用的参数: -c 只显示有多少行匹配 ,而不具体显示匹配的行 -i 在字符串比较...
  • Linux文本搜索:grep命令

    万次阅读 2018-04-12 08:42:28
    grep作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 grep全称是Global Regular Expression Print,表示全局正则表达式版本。 它的使用权限是所有用户。...
  • 1.Shell常见通配符 通配符是shell在做PathnameExpansion(路径名扩展)时用到的。说白了一般只用于文件名匹配,它是由shell解析的,比如find... 匹配 0 或多个字符 a*b a与b之间可以有任意长度的任意字...
  • Linux shell 用sed命令在文本的行尾或行首添加字符
  • --color=auto:对匹配到的文本着色显示 -v:反向选择 -i:忽略字符大小写 -n:显示匹配的行号 -c:统计匹配的行数 -o:仅显示匹配到的字符串 -q:静默模式,不输出任何信息 -A#:after,后#行 -B#:before,前#行 -C#:context,...
  • linux 文本处理

    千次阅读 2016-07-12 23:34:05
    1.文本处理-echoecho -e "\033[40;35m...."背景颜色范围:40--4940:黑 41:深红 42:绿43:黄色 44:蓝色 45:紫色46:深绿 47:百色字体颜色范围:30-3930:黑 31:红 32:绿33:黄 34:蓝色 35:紫色36:深绿 37:百色eg: echo -e ...
  • 您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。   tr用来从标准输入中通过替换或删除操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,588
精华内容 40,235
关键字:

linux文本字符匹配

linux 订阅