美文网首页
Linux基础(三)-- Linux的基本命令(下)

Linux基础(三)-- Linux的基本命令(下)

作者: 做个合格的大厂程序员 | 来源:发表于2020-06-01 18:23 被阅读0次

    cut

    新建文件:
    vim 1.txt

    111:aaa:bbb:ccc
    222:ddd:eee:fff
    333:ggg:hhh
    444:iii

    截取

    cat 1.txt | cut -c 1
    

    练习一:截取出1.txt文件中前2行的第5个字符

    head -2 1.txt | cut -c 5
    

    练习二:截取出1.txt文件中前2行以”:”进行分割的第1,2段内容

    head -2 1.txt | cut -d ':' -f 1,2
    

    或者

    head -2 1.txt | cut -d ':' -f 1-2
    

    sort

    sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

    [root@node01 tmp]# cat 01.txt
    banana
    apple
    pear
    orange
    pear
    
    [root@node01 tmp]# sort 01.txt 
    apple
    banana
    orange
    pear
    pear
    

    sort的-u选项

    它的作用很简单,就是在输出行中去除重复行。

    [root@node01 tmp]# sort -u 01.txt 
    apple
    banana
    orange
    pear
    

    pear由于重复被-u选项无情的删除了。

    sort的-r 和 -n选项

    [root@node01 tmp]# cat 02.txt 
    1
    3
    5
    7
    11
    2
    4
    6
    10
    8
    9
    

    sort默认的排序方式是升序

    [root@node01 tmp]# sort 02.txt 
    1
    10
    11
    2
    3
    4
    5
    6
    7
    8
    9
    

    排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面

    [root@node01 tmp]# sort -n 02.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    

    -r表示降序,n表示按数字进行排序

    [root@node01 tmp]# sort -n -r 02.txt
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    

    合并式

    [root@node01 tmp]# sort -nr 02.txt  
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    

    wc命令

    wc命令用于计算字数。

    利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

    wc 文件名
    

    参数:

    • -c或--bytes或--chars 只显示Bytes数。
    • -l或--lines 只显示行数。
    • -w或--words 只显示字数。
    • --help 在线帮助。
    • --version 显示版本信息。

    uniq

    uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。

    uniq 文件名
    

    参数

    -c 统计行数

    练习1 去除5.txt中重复的行

    cat 5.txt | sort | uniq
    

    练习2 统计5.txt中每行内容出现的次

    cat 5.txt | sort | uniq -c
    

    tee

    tee 和 >类似,重定向的同时还在屏幕输出
    参数说明:
    tee -a 内容追加 和 >> 类似

    [root@hadoop01 tmp]# echo 'aaa' | tee 1.txt
    aaa
    
    [root@hadoop01 tmp]# cat 1.txt
    aaa
    
    [root@hadoop01 tmp]# echo 'bbb' | tee -a 1.txt
    bbb
    
    [root@hadoop01 tmp]# cat 1.txt
    aaa
    bbb
    

    tr

    Linux tr 命令用于转换或删除文件中的字符。
    tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

    -d, --delete:删除指令字符

    练习1 把itheima的小写i换成大写I

    echo "itheima" | tr 'i' 'I'
    

    练习2 把itheima的小写i和a换成大写I和A

    echo "itheima" | tr 'i' 'I' | tr 'a' 'A'
    

    把itheima的转换为大写

    echo "itheima" |tr '[a-z]' '[A-Z]'
    

    练习5 单词计数

    words.txt中的内容如下:
    hello,world,hadoop
    hive,sqoop,flume,hello
    kitty,tom,jerry,world
    hadoop
    
    cat words.txt | tr -s ',' '\n' | sort | uniq -c | sort -r | awk '{print $2, $1}'
    

    awk

    awk是一种处理文本文件的命令,是一个强大的文本分析工具。但是比较复杂,不过功能比sed更加的强大,它支持分段。默认每行按空格或TAB分割。

    -F 指定输入文件折分隔符

    格式

    awk '/查询内容/ 文件名称'
    
    Xnip2020-05-31_17-41-45

    高级用法:
    查询姓张和姓李开头的成绩

    awk '/^zhang|^li/' score.txt
    

    打印前三段内容

    awk -F ',' '{print $1, $2,$3,}' score.txt
    

    打印所有

    awk -F ',' '{print $0}' score.txt
    

    打印带行号

    awk -F ',' '{print NR, $0}' score.txt
    

    获取最后一段内容

    awk -F ',' '{print $NF}' score.txt
    

    获取倒数第二段

    awk -F ',' '{print $(NF - 1)}' score.txt
    

    查询名字转成大写

    awk -F ',' '{print toupper($1)}' score.txt 
    
    tolower // 转成小写
    length // 返回字符长度
    

    打印最后一行大于60分的人,并且标注及格

    awk -F ',' '{if($NF > 60) print $1,$4,"及格"}'  score.txt 
    

    相关文章

      网友评论

          本文标题:Linux基础(三)-- Linux的基本命令(下)

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