• 重定向和管道符


    1. 重定向--tr

    程序 = 指令+数据

           命令  变量

    数据输入:键盘--标准输入,但是并不是唯一输入方式

    --stdin

    echo “123456”|passwd--stdin”username”

    while line(变量);do

    循环体

    done < /etc/passwd

    数据输出:显示器---标准输出,但是并不是唯一输入方式

      ls /etc/ > a.txt

    fd文件标识符0-9

    0 1 2

    0--标注输出

    1--标准输入

    2--错误输入输出(标准错误)

    常见重定向符号

    1、标准输出

    >    覆盖重定向、非常危险

    set-C 去掉覆盖重定向功能

    set+C 不去掉覆盖重定向功能

    >| 强制重定向

    >>   追加重定向(不覆盖)

    2、标准输入

    < 把后面的内容交给前面的内容  tr:替换

    tr set1[set2] < file.txt

     

    << cat将多行数据同时输入

    cat >>a.txt << EOF

    >1

    >2

    >3

    >EOF

    3、错误输出

    2>  2>>

    拓展:不需要输出内容只需要输出状态;

    ls /etc/ > /dev/null

    if[ $-eq 0];then

    循环体

    fi

    &> &>> == 2&>1

    ls /etc/&> /dev/null

    1. 管道 -tee

    command1 | command2 | command3|.....

    前一个命令的执行结果交给后一个命令来执行;

    结合小功能实现大功能

    提取219

    free -m|grep”^Mem”|cut -d’ ‘ -f19

    free -m|grep”^Mem”|awk’{print $3}’

    Tee

    一路输入两路输出(屏幕输出一次保存一次)如果没有文件会创建默认如果文件存在内容会覆盖

    tee /tmp/tee.out

    1. 文本处理工具 - wc,cut,sort,uniq

    cut  文件分割

    -b 切割字节

    -c 字符

    -d 指定分隔符(delimiter-d[:]

    -f 提取哪一列

    -f1 第一列

    -f1-3 1-3

    -f1,3 13

    - -output - delimeter=’xx’

    局限性:1.-d指定分隔符不能同时指定多个

     2.不能做高级格式化输出

    wc    word count 统计文本文件中的字符个数  

    用法:wc filename

    -l 行数

    -w 字符个数

    -c 文件大小

    文件名

    uniq 去重 处理相邻的重复行(连续且相同)建议先排序后去重

    -c 统计某些字符重复的次数   sort filename |uniq -c

    -d 显示重复的行

    -u 显示不重复的行

    uniq -c a.txt   显示行数

    sort 按阿斯克码排序 默认查看第一个字符 包括数字字母空格和特殊符号

    -r 逆序

    -f忽略字符大小写

    -u uniq 排序去重重复的不显示

    -n 指定以数值大小的进行排序

    -t delimiter指定字符段分隔符     cut-d

    -k #已定字段的第几段进行排序 cut-f

    cat b.txt | sort -n(升序)/-nr(降序)

    sort a.txt |uniq -c |sort -nr |head -1 显示出现次数最多的一行

    1.将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中

    head -5 /etc/passwd|tr[a-z] [A-Z]>/tmp/passwd.out

    2.将登陆至当前系统上的用户信息汇总后3位信息转换为大写后保存至/tmp/who.out文件中

    who |tail -3|cut -d’ ‘-f1|tr[:lower:][:upper:]|tee /tmp/who.out

    tail 查看文件尾部行数默认10

    -n 指定查看几行(tail -n 5/etc/passwd==tail -5/etc/passwd

    -f 实时查看文件更新内容

    tail -f /var/log/message

    head 查看文件头部多少行(默认10行)

    -n ##行,简写-#

    10- 20行: head-20 /etc/passwd|tail -10

     取出/etc/passwd文件中的第6到10行,将这些信息按照3个字段的数值大小进行排序,最后仅显示各自的第一个字段: head /etc/passwd |tail -5 |sort -t: -k3 -n | cut -d":" -f1

  • 相关阅读:
    几种开源工作流引擎的简单比较(转)
    ExecuteScalar
    机房重构---我们“重构”出了什么?
    薏米红豆粥功效及做法介绍
    Mean Shift具体介绍
    linux fork函数浅析
    html的下拉框的几个基本使用方法
    Readprocessmemory使用方法
    配置Log4j(非常具体)
    【Linux】linux经常使用基本命令
  • 原文地址:https://www.cnblogs.com/bishuyu/p/11348450.html
Copyright © 2020-2023  润新知