`

linux,shell学习(五)

阅读更多
文本过滤

1.正则表达式介绍  4.awk介绍
2.find介绍            5.sed介绍
3.grep介绍          6.合并与分割(sort,uniq,join,cut,paste,split)

    1.正则表达式:
        1.1 什么是正则表达式
            一种用来描述文本模式的特殊字符
        1.2 由普通字符(例如:字符 a 到 z )以及特殊字符(称 元字符,如:/,*,?等)组成
        1.3 文本过滤工具在某种模式下都支持正则表达式
        1.4 正则表达式语法:http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx
    2.find命令
        2.1 一个查找命令
        2.2 查找具有某些特征的文件命令
        2.3 可遍历当前目录甚至整个文件系统来查找某些文件或目录
        2.4 遍历大的文件系统时,一般放在后台执行
        2.5 find命令的格式:
            find pathname -options [-print -exec -ok]
            -pathname find命令查找的路径,例如:用.来表示当前路径,用/表示根目录
            -print find命令将匹配文件输出到标准输出
           -exec find命令,将匹配的文件执行该参数给出的shell命令,相应命令的形式:'command' {  } \; 注意{}和\;之间的空格。
           -ok和-exec命令作用相同。只不过以一种安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前都会给出提示,让用户选择是否执行。
       2.6find命令选项
            -name   按照文件名查找文件。
            -perm   按照文件权限来查找文件。
            -prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
            -user   按照文件属主来查找文件。
            -group  按照文件所属的组来查找文件。
            -mtime -n +n   按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
            -nogroup   查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
            -nouser    查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
            -newer file1 ! file2   查找更改时间比文件file1新但比文件file2旧的文件。
            -type   查找某一类型的文件,诸如:
                b - 块设备文件。
                d - 目录。
                c - 字符设备文件。
                p - 管道文件。
                l - 符号链接文件。
                f - 普通文件。
            -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
            -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
            -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
            -mount:在查找文件时不跨越文件系统mount点。
            -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
            -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
    -amin n   查找系统中最后N分钟访问的文件
  -atime n   查找系统中最后n*24小时访问的文件
  -cmin n   查找系统中最后N分钟被改变文件状态的文件
  -ctime n  查找系统中最后n*24小时被改变文件状态的文件
    -mmin n  查找系统中最后N分钟被改变文件数据的文件
  -mtime n  查找系统中最后n*24小时被改变文件数据的文件
xargs
   xargs - build and execute command lines from standard input
   在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现 溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
   find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
   在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;
   而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
   下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件:
[hadoop@localhost shellTest]$ find . -name "*.txt" | xargs ls -l
-rw-rw-r--. 1 hadoop hadoop 49 5月  26 05:44 ./aa.txt
-rw-rw-r--. 1 hadoop hadoop 49 5月  26 05:44 ./bb.txt
-rw-rw-r--. 1 hadoop hadoop 15 5月  26 05:46 ./cc.txt
-rw-rw-r--. 1 hadoop hadoop  9 5月  26 06:05 ./dd.txt
-rw-rw-r--. 1 hadoop hadoop 11 5月  26 06:09 ./ee.txt
-rw-rw-r--. 1 hadoop hadoop 51 5月  26 06:11 ./error.txt
-rw-rw-r--. 1 hadoop hadoop  0 5月  26 05:47 ./nullfile.txt
-rw-rw-r--. 1 hadoop hadoop 14 5月  30 17:41 ./ss/1.txt

   2.grep命令
   grep的三种形式:
   grep:标准grep命令,本章大部分篇幅集中讨论此格式。
   egrep:扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用,与之相对应的一些更加规范的模式,这里也不予讨论。
   fgrep:快速grep。允许查找字符串而不是一个模式。不要误解单词fast,实际上它与grep速度相当。
   grep命令格式:
        - grep(参数)选项。
        - 匹配grep的一般模式。
        - 只匹配字母或数字,或两者混用。
        - 匹配字符串范围。
   grep选项
   常用的grep选项有:
        -c 只输出匹配行的计数。
        -i 不区分大小写(只适用于单字符)。
        -h 查询多文件时不显示文件名。
        -l 查询多文件时只输出包含匹配字符的文件名。
        -n 显示匹配行及行号。
        -s 不显示不存在或无匹配文本的错误信息。
        -v 显示不包含匹配文本的所有行。
     grep "模式匹配"  文件
    AWK命令介绍
        可以从文件或字符串中基于指定规则浏览和抽取信息
        是一种自解释的编程语言
        三种命令调用awk语言
        1.命令行方式
            awk [-F field-spearator] 'command' input-files
        2.脚本
            所有awk命令插入到一个文件中,并使awk程序可执行。然后用awk脚本解释器作为脚本的首行,以便键入脚本的名称来调用它。
        3.awk命令插入一个单独的文件
            awk -f awk-script-spearator input-files
    awk脚本由各种操作和模式组成。
        模式和动作
            模式部分决定动作语句何时触发及触发事件.(BEGIN,END)
            动作对数据进行处理,放在大括号{}内指明.(print)
        分隔符,域和记录
            awk执行时,其浏览域标记为$1,$2...$n.这种方法称为域标识。$0为所有域。
        注意:执行时不要混淆符号$和shell中的$.他们是不同的。

      sed,sort,uniq,join,cut,paste,split  搜索学习
分享到:
评论

相关推荐

    linux shell学习资料

    在本学习资料包中,包含了三本关于Linux Shell的重要书籍:《Linux Shell编程艺术》、《Linux Shell脚本攻略》以及《Linux Shell从入门到精通》,这些资源将帮助你全面深入地理解和掌握Linux Shell。 《Linux Shell...

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    Linux-shell脚本全面学习.pdf

    Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...

    linux_shell实例精解

    "Linux Shell实例精解"这本书籍正是针对这个主题,为初学者提供了丰富的学习资源。 在Linux世界中,Shell扮演着至关重要的角色。它不仅用于执行单个命令,还能通过脚本进行批量处理、文件操作、系统管理、数据处理...

    《Linux shell脚本全面学习》pdf版电子书

    ### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...

    linux shell 视频教学

    在这个"Linux Shell视频教学"中,你将深入学习如何有效地利用Shell进行日常的系统管理、文件操作以及自动化工作流程。 首先,你需要了解Shell的基础知识,包括如何启动和退出Shell,以及基本的命令行操作,如目录...

    Linux Shell学习笔记

    Linux shell是学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习。

    linux Shell编程入门 实例讲解详解

    Linux Shell编程入门实例讲解详解 Linux Shell编程是Linux系统中一...Linux Shell编程是Linux系统中一种非常重要的工具,通过学习Linux Shell编程,可以提高工作效率,提高系统管理的自动化程度,提高自己的编程能力。

    linux shell 应用.chm

    linux shell 应用.chm,学习linux shell资料

    Linuxshell编写demo

    通过学习和实践这些基础知识,你可以编写出自己的Linux Shell脚本来解决实际问题。结合提供的博客地址(http://blog.csdn.net/u013171283/article/details/79204476),可以更深入地学习和理解Linux Shell编程的高级...

    linux shell 编程电子书

    linux shell 编程电子书,学习linux shell很不错的资料,高清的

    Linux shell命令学习心得

    本文将深入探讨Linux shell命令的学习心得,分享一些实用技巧和常见命令的用法。 首先,Linux shell是操作系统与用户交互的接口,它允许用户通过输入命令来执行各种任务。在众多shell类型中,Bash(Bourne-Again ...

    Linux Shell学习资料合集

    分别有以下这些内容的资料 Linux与unix shell编程指南 Bash参考手册 Expect中文教程 Expect简介和应用 Expect命令基本语法 高级Bash脚本编程指南 高级Shell脚本编程 Shell命令合集

    Linux Shell编程从入门到精通

     本书旨在通过理清Linux Shell编程的脉络,从基本概念着手,以丰富、实用的范例作为辅助,使读者能够深入浅出的学习LinuxShell编程。  本书的每一章节都配有综合案例,这些综合案例不仅可以使读者复习前面所学的...

    linux shell脚本攻略源代码

    本资源提供的“Linux Shell脚本攻略源代码”是一份详细的学习材料,对于想要掌握或提升Shell脚本技能的人来说极具价值。 首先,让我们了解一下Shell的基本概念。在Linux中,Shell是用户与操作系统内核交互的界面,...

Global site tag (gtag.js) - Google Analytics