2016.08.04学习笔记

文本管理工具

    1.cat:查看文件,读取键盘输入

        -A:查看文件所有信息

        -n:显示行数

        -s:压缩连续的空行

    2.tac:倒序显示文件内容

    3.rev:行内的内容倒序显示

    3.more:分页显示

    4.less:一页一页显示

    5.head:分行显示,从头开始

        -n:n是数字,显示要查找的行数

        -c:指定获取多少个字节

    6.tail:从后向前显示

        -n:从后向前显示行数

        -c:查看截取的字节数

        -f:显示跟踪文件,(如果有文件输出到tail内,会自动更新显示)

        小技巧,可以用&,表示后天运行程序

    7.cut:截取命令

        -d:以什么字符截取

        -f:显示截取的第几列

        -c:按字符数切割 整列的前多少个字符

        例:cat /etc/passwd | cut -d: -f3

                表示用:分割,取第3列

        –output-delimiter=*    :表示用*号替换分隔

    8.paste:合并两文件内容

        -d:指定分隔符

        -s:压缩成一行 自己文件列成一行,第二行表示是第二个文件列变成行

    9.wc:统计行数

        格式:行数   单词数   字符数   文件名

        -l:表示共有多少行

        -w:表示单词数

        -c:表示字节数

        -m:表示字符数

        例:cat /etc/passwd |wc -l    这个文件有多少用户(多少行)

    10.sort:文本排序

        -r:反向排序

        -n:按数字大小排序

        -t:以什么字符分隔选取

        -k:选取多少列

        -f:忽略大小写

        例:cat /etc/passwd | sort  -rn -t: -k3 用户按UID从大往小排序

        -u:删除输出中的重复行

    11.diff:比较两个文件的不同

        格式:diff file1 file2

文本处理工具

    1.grep:文本过滤

        -i:忽略大小写

        -o:显示匹配文本

        -v:显示未匹配的行

        -q:不输出任何信息

        -n:显示匹配行号

        -c:显示匹配的行数

        -e:或者的关系

        -A:显示匹配后的多少行    grep -A3

        -B:显示匹配前多少行

        -C:显示匹配上下文多少行

        -w:正行匹配单词   必须是单词,两个单词相连无任何字符的不能匹配

正则表达式

    分为:

        基本正则表达式 BRE

            可以字符匹配、次数匹配、锚定、分组  

            . :匹配任意单个字符;

            [] :匹配指定范围内的任意单个字符

            [^] :匹配指定范围外的任意单个字符

            [:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]

    例:1、显示/proc/meminfo文件中以大小s开头的  

        blob.png

        2、显示/etc/passwd文件中不以/bin/bash结尾的行   

        blob.png

        3、显示用户rpc默认的shell程序

        blob.png

         *:匹配前面的字符任意次,包括0次

        贪婪模式:尽可能长的匹配

            .*:表示任意字符

            \?:最多匹配1次,也可以是0次

            \+:最少匹配1次 可以无穷大

            \{m\}:匹配前面的字符m次

            \{m,n\}:匹配前面的字符至少m次,至多n次

            \{,n\}:匹配前面的字符至多n次

            \{m,\}:匹配前面的字符至少m次

    锚定:

        ^:在整行的开头

        $:在整行的结尾

        \<或者\b:表示单词的开始

        \>或者\b:表示单词的结束

    分组:

        \(\):将一个或多个字符捆绑在一起,当作一个整体进行处理

        括号中匹配到的内容保存在变量中,用\1,\2等可以调用这些变量

        blob.png

        括号中的内容看成整个一个连续的字符

        例:添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件             中用户名同shell名的行

            blob.png

        扩展正则表达式 ERE

            ^ :行首

            $ :行尾

            \<, \b :语首

            \>, \b :语尾

        分组:

            ()

            后向引用:\1, \2, …

        或者:

            a|b

            例:显示当前系统root、mage或wang用户的UID和默认shell

            blob.png

原创文章,作者:landanhero,如若转载,请注明出处:http://www.178linux.com/29876