• linux


    先新建一个文件,并写入一些东西,方便测试, 从passwd里复制几行吧

    $ head -n 10 /etc/passwd > passwd
    t$ ll
    总用量 12
    drwxrwxr-x  2 huanghao huanghao 4096  3月  3 11:55 ./
    drwxr-xr-x 19 huanghao huanghao 4096  3月  1 14:04 ../
    -rw-rw-r--  1 huanghao huanghao  424  3月  3 11:55 passwd
    $ cat passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

    首先熟悉几个命令:

    cat  查看文件所有内容,一次性打印所有内容

    less 查看文件所有内容,但是可以pageup , pagedown上下翻页,q退出

    more  查看文件所有内容,按空格一页一页翻,按回车一行一行翻, 但是只能往下翻

    head   默认查看文件头10行,可以加-n参数定义行数

    tail     默认查看文件末尾10行,可以加-n参数定义行数


    cut 截断,

    $ cut -d : -f 2 passwd     #以:分隔, 显示第2列
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    $ head -n 1 passwd | cut -c1-3    #显示passwd文件第一行的1-3个字符
    roo
    
    $ cut -c1-3 passwd           #显示所有行的1-3个字符
    roo
    dae
    bin
    sys
    syn
    gam
    man
    lp:
    mai
    new

    sort 排序

    $ cat passwd |sort                #默认按第一个字符排序
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    sync:x:4:65534:sync:/bin:/bin/sync
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    $ sort -t : -k 3 -n passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

    -t     以…分隔

    -k    是以哪一列来排序

    -n    是以数字形式排序,比如11, 2,如果不加-n,可能11就排在2前面,因为第一个字符1比2小。

    -r    反向排序

    现在来年组合应用,排序后只显示第三列,直观感受排序

    $ sort -t : -k 3 -n passwd |cut -d : -f3
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ sort -t : -k 4 -n passwd |cut -d : -f3-4
    0:0
    1:1
    2:2
    3:3
    7:7
    8:8
    9:9
    6:12
    5:60
    4:65534


    grep

    grep -A2 -B2 games /etc/passwd                 #上两行,下两行
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    huanghao@huanghao-Virtual-Machine:~/test$

    wc  统计

    $ cat passwd |wc
         10      10     424                       #行数,单词数,字符数

    -l       显示行数

    -w     显示单词数

    -c      显示字符数

    $ head -n 8 passwd |wc -l
    8

    uniq  去年相邻的重复行,只保留一个


    正则表达式:

    . 一个或多个任意字符
    * 零个或多个前面的字符
    a+ 一个或多个a
    [] 括号中任何一个字符
    [^] 非括号中任何一个字符
    ^ 以…开头
    $ 以….结尾
    <s….k> 以s开头,以k结尾,中间有四个字母的单词
    <s 以s开头的单词
    a{18} a 重复18次
    .{40,} 40个字母以上的单词
    .{40,50} 40-50个字母的单词

    来个组合应用一下:

    $ grep '^i.{14,}n$' /usr/share/dict/words      #以i开头,n结尾,14个字母以上的单词
    industrialization

    再来一个:

    $ grep -v '^#' /etc/colord.conf |grep -v '^$' |wc -l
    6
    这个是什么意思呢?配置文件里通常会有很多#号开头的注释行,还有很多空行,那这个命令的意思就是 统计所有不以#号开头而且不是空行的行数。’^$’一开始就结束 表示是空行。
  • 相关阅读:
    从远程仓库更新本地仓库
    git添加所有新文件
    删除远程仓库文件夹
    更新被驳回
    git安装和第一次提交过程
    JSONobject按照put顺序存储和读取
    Map 转 json格式 保留null值的解决办法
    Java对象转换Json的细节处理
    如何解析json格式的字符串
    json 拼装空list、object
  • 原文地址:https://www.cnblogs.com/huangxm/p/5238680.html
Copyright © 2020-2023  润新知