美文网首页
Linux 命令合集(二):查看文件及内容处理命令

Linux 命令合集(二):查看文件及内容处理命令

作者: w也不知道 | 来源:发表于2017-06-15 23:01 被阅读0次

    一、cat(tac):(倒序)查看文件内容

    1. 命令格式
    cat [参数] [文件名]
    
    1. 命令参数
      -n:对所有行进行编号
      -b:对所有非空行进行编号
      -s:压缩多行非空行为一行非空行
      -T:tab缩进用 ^I 表示
    

    例1: cat -n:对所有行进行编号



    :例2. cat -b:对所有非空行进行编号



    例3.cat -sn:压缩多行非空行为一行非空行

    例4.cat >cat.log<<EOF:将标准输入的内容写入到文件中;输入EOF结束



    例5.tac 示例:tac cat.log

    二、cut:将文件的每一行按指定分隔符分割并输出

    1. 命令格式
    cut [参数] [文件名]
    
    1. 命令参数
    -c:仅显示行中指定范围的字符(如"-c-5","-c1-5","-c5-"等)
    -d:指定字段的分隔符,默认是"TAB"
    -f:显示指定字段的内容
    --complement:不显示符合条件的列或字符
    

    例一:显示文件的前五个字符

    cut -c-5 /etc/passwd # "-c-5","-c1-5" 都表示前五个字符,"-c5-"表示从第五个字符开始显示到最后一个字符
    

    例二:不显示符合条件的列

    cut -d":" -f2,3,4,5,6 --complement /etc/passwd
    

    三、split:分割大文件为多个小文件

    1. 命令格式
    split [参数] [文件名]
    
    1. 命令参数
    -a:指定分割后文件的后缀长度
    -C:按指定大小分割文件
    -l:按指定行数分割文件
    -d:使用数字作为后缀
    

    例:按1M大小分割文件并指定分割后的文件名

    split -C 1M test.txt -d -a 2 test
    

    四、paste:按行合并文件内容

    1. 命令格式
    paste [参数] [file1] [file2]
    
    1. 命令参数
    -d:指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @
    -s:将每个文件合并成行而不是按行粘贴
    -:使用标准输入。例如ls |paste -d " " - -,意即只在一列上显示输出
    

    例一:



    例二:



    例三:

    五、sort:对文件的文本内容排序

    1. 命令格式
    sort [参数] [file]
    
    1. 命令参数
    -b:忽略每行开始处的空白字符
    -c:检查文件是否被排过序
    -d:排序时只处理英文字符,数字和空格
    -f:排序时将小写字母视为大写字母
    -m:将几个排序好的文件进行合并
    -M:将前面三个字母按照月份的缩写进行排序
    -n:依照数值的大小排序
    -r:以相反的顺序进行排序
    -t:指定排序时的列分隔符
    

    例:忽略每行开始处的空白字符,对第二域按数字大小进行排序


    六、uniq:去除重复行

    1. 命令格式
    uniq [参数] [file]
    
    1. 命令参数
    -c:相同行数出现的次数
    -d:仅显示重复出现的列
    -u:仅显示出现一次的列
    

    七、wc:统计文件的字符数,单词数和行数

    1. 命令格式
    wc [参数] [file]
    
    1. 命令参数
    -l:统计行数
    -w:统计单词数
    -c:统计字符数
    

    八、grep/egrep:过滤字符串

    1. 命令格式
    grep/egrep [参数] [file]
        建议使用别名:alias grep='egrep -i --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'
    
    1. 命令参数
    -a:不要忽略二进制的数据。   
    -A <显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。      
    -B <显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。   
    -c:计算符合样式的列数。   
    -C <显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。    
    -H:在显示符合样式的那一行之前,显示该行所属的文件名称。   
    -i:忽略字符大小写的差别。      
    -L:列出文件内容不符合指定的样式的文件名称。   
    -n:在显示符合样式的那一行之前,标示出该行的列数编号。   
    -q:不显示任何信息。   
    -r:递归搜索目录
    -s:不显示错误信息。   
    -v:显示不包含匹配文本的所有行。   
    -w:只显示全字符合的列。   
    -x:只显示全列符合的列。
    

    正则表达式

    ^:匹配输入字符串的开始位置
    $:匹配输入字符串结尾的位置
    ^$:匹配空白行
    .:匹配任意单个字符
    *:匹配紧挨着的前面的字符任意次
    .*:匹配任意字符串
    ?:匹配紧挨着的前面的字符串0次或1次
    +:匹配紧挨着的前面的字符串1次或多次
    \:转义字符
    |:指明两项或多项之间的一个选择
    {m,n}:匹配紧挨着的前面的字符m到n次
    {,m}:匹配紧挨着的前面的字符0次到m次
    {m,}:匹配紧挨着的前面的字符最少m次
    ():标记一个子表达式的开始和结束位置,\1表示第一个子表达式
    []:匹配指定范围内的任意单个字符
    [^]:匹配指定范围外的任意单个字符
    

    grep支持的字符和字符集合

    \d:数字字符匹配。等效于 [0-9]。
    \s:匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。
    \S:匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效
    \w:匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效。
    \W:与任何非单词字符匹配。与“[^A-Za-z0-9_]”等效。
    [:digit:]:所有数字, 相当于0-9 或者\d
    [:lower:]:所有的小写字母
    [:upper:]:所有的大写字母
    [:alpha:]:所有的字母
    [:alnum:]:相当于[0-9a-zA-Z]
    [:space:]:空白字符 相当于\s
    [:punct:]:所有标点符号
    

    例一:显示meminfo文件中以不区分大小的s开头的行



    例二:显示/etc/passwd中,以r开头的字符而后跟了任意单个字符的行



    例三:显示/etc/passwd中,r后跟了o,o出现最少一次

    例四:显示/etc/passwd中,r后跟了o,o只出现2次的行


    例五:显示meminfo文件中以一个数字开头并以一个与开头数字相同的数字结尾的行



    例六:匹配ABC类IP地址即 1.0.0.1---223.255.255.254

    cat > ip.txt <<EOF
    1.0.0.254
    1.0.0.255
    1.2.3.4
    223.255.255.254
    224.255.255.252
    2.255.255.255
    EOF
    egrep "^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$" ip.txt
    

    例七:匹配手机号码:手机号码是1[3|4|5|8]后面接9位数字的

    cat > tel.txt << EOF
    13690876890
    12589098379
    15608764083
    15820974619
    138074082711
    18618203761
    19209783900
    1329873909
    EOF
    egrep -x  "1[3|4|5|8][0-9]{9}" tel.txt
    

    九、tr:替换或者删除字符

    1. 命令格式
    tr [参数] [file]
    
    1. 命令参数
    -c:指定字符范围的补集
    -d:删除指定范围的字符
    -s:把多个重复的字符压缩为一个
    

    例一:将大写字符转换为小写字符



    例二:删除指定范围的字符


    例三:删除指定范围字符的补集


    十、其它命令

     more(less):分页显示文件内容
     head(tail):显示文件内容头部
     join:将两个文件中,制定栏位内容相同的行连接起来
     iconv:转换文件编码格式
     dos2unix:将dos文件格式转换为Unix格式
     diff(vimdiff):比较文件差异
     rev:反向输出文件内容

    相关文章

      网友评论

          本文标题:Linux 命令合集(二):查看文件及内容处理命令

          本文链接:https://www.haomeiwen.com/subject/iljvattx.html