>

【www.lo599.com】shell 目录下搜索字符串

- 编辑:乐百家599手机首页 -

【www.lo599.com】shell 目录下搜索字符串

linux查看目录下全部文件内容中是还是不是带有有些字符串,linux字符串

来源:

招来目录下的保有文件中是或不是带有有个别字符串
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 一千000c -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,第2个人6|7|8|9,第2个人为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,1,2,…n.这种艺术成为域标志。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 “IPDaten”}{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/amorning’ test.txt 在特别到的good前边附加morning
sed -n ‘/good/imorning’ test.txt 在合营到的good前面插入morning
sed -n ‘/good/cmorning’ 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 以”/”分隔,第3个域初阶分类
(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个字符

查找目录下的兼具文件中是或不是含有某些字符串 
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 一千000c -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,...$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 "IPDaten"}{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/amorning' test.txt 在同盟到的good后边附加morning 
          sed -n '/good/imorning' test.txt 在同盟到的good前边插入morning 
          sed -n '/good/cmorning' 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 的文字。 

linux查找目录下的有所文件中是还是不是包蕴有些字符串

找出目录下的兼具文件中是否富含有些字符串
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,...$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 "IPDaten"}{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/amorning' test.txt 在卓越到的good后面附加morning
sed -n '/good/imorning' test.txt 在相当到的good后边插入morning
sed -n '/good/cmorning' 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个字符

链接自

查找目录下的有着文件中是不是带有有个别字符串 find .|xargs grep -ri IBM 查找目录下的装有文件...

四.awk介绍 能够从文件或字符串中基于钦定准则浏览和抽出音讯,是一种自解释的成为语言。 (1)awk命令行格局 awk [-F filed-spearator] 'command' input-files awk脚本:全体awk命令插入二个文书,并使awk程序可实践,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。awk脚本是由各样操作和格局组成。 形式部分决定动作语句何时触发及触发事件。(BEGIN,END) 动作对数据开始展览管理,放在{}内指明(print)
(2)分隔符、域和著录 awk推行时,其浏览域标志为$1,$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 "IPDaten"}{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的行。五、五、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/amorning' test.txt 在同盟到的good前面附加morning sed -n '/good/imorning' test.txt 在非常到的good后边插入morning sed -n '/good/cmorning' 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
六.集结与区划(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个字符

find .|xargs grep -ri "IBM" 查找目录下的装有文件中是否带有有些字符串,而且只打印出文件名 fi...

一、find 指令
(1)查找具有有个别特点文件的吩咐,可遍历当前目录以至于整个文件系统来查阅有个别文件或目录,其遍历大的文件系统时一般位于后台实践。
(2)find命令的相似方式
find pathname -options [-print -exec -ok]
-pathname :find命令所查找的目录路线。如用"."来代表近年来的目录,用/来代表系统根目录
-print :find命令将相配的文本输出到专门的职业输出

本文由乐百家服务器发布,转载请注明来源:【www.lo599.com】shell 目录下搜索字符串