zoukankan      html  css  js  c++  java
  • 管道,输出,管道,重定向,grep

    输出:
    大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)
    > 是覆盖原有内容
    >> 是追加内容

    2> 是错误内容覆盖
    >> 是错误内容追加重定向
    [yuq@localhost ~]$ sdfsdfsdf > a.txt
    bash: sdfsdfsdf: 未找到命令...
    [yuq@localhost ~]$ sdfsdfsdf 2>a.txt

    [yuq@localhost ~]$ echo '123' > ture.txt

    &> 是错误(正确)都可以内容覆盖
    &>> 是错误(正确)都可以内容追加重定向

    正确与错误的内容分别添加到不同文件
    [yuq@localhost ~]$ date 2>err.txt >ture.txt
    [yuq@localhost ~]$ cat err.txt
    [yuq@localhost ~]$ cat ture.txt
    2017年 06月 12日 星期一 15:48:13 CST


    输入:
    小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入

    [yuq@localhost ~]$ cat err.txt
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    [yuq@localhost ~]$ tr 'a-z' 'A-Z' <err.txt #把err.txt的内容输入转换为大写
    127.0.0.1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST4 LOCALHOST4.LOCALDOMAIN4
    ::1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST6 LOCALHOST6.LOCALDOMAIN6
    [yuq@localhost ~]$


    grep:

    #在passwd中含有passwd的行全部过滤出来
    [yuq@localhost ~]$ cp /etc/passwd .
    [yuq@localhost ~]$ grep root passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    [yuq@localhost ~]$ grep -n root passwd
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin
    [yuq@localhost ~]$ grep ^root passwd
    root:x:0:0:root:/root:/bin/bash

    #在passwd中含有yuq的行全部过滤出来
    [yuq@localhost ~]$ grep yuq passwd
    yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
    #在passwd中含有yuq(包括大小写)的行全部过滤出来
    [yuq@localhost ~]$ grep -i yuq passwd
    yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
    Yuq:x:1000:

    #在passwd中含有yuq(包括大小写)的行全部反向过滤出来
    [yuq@localhost ~]$ grep -inv yuq passwd

    #找到关键字的下面三行
    [yuq@localhost ~]$ grep -n -A3 root passwd

    #找到关键字的上面三行
    [yuq@localhost ~]$ grep -n -B3 yuq passwd

    #找到关键字的上面三行和下面三行
    grep -n -C3 yuq passwd

    grep还可用正则表达式


    管道:
    把前一条命令的结果当成一个命令输入
    [yuq@localhost ~]$ ls -a |grep *.txt
    a.txt
    结合本例就是先显示所有的文件,然后再用grep命令在ls的结果中查找包含*.txt的文件。

    先把一个命令结果写入一个文件,再从文件中过滤
    [yuq@localhost ~]$ ifconfig lo > a.txt
    [yuq@localhost ~]$ grep 'inet ' a.txt
    inet 127.0.0.1 netmask 255.0.0.0

    #用管道实现
    [yuq@localhost ~]$ ifconfig lo | grep -n 'inet '
    2: inet 127.0.0.1 netmask 255.0.0.0

    # tee把前面命令的结果写入a.txt(覆盖)
    ifconfig lo | tee a.txt |grep 'inet'

    # 查看/etc/passwrod的11~15行
    [yuq@localhost ~]$ head -14 /etc/passwd | tail -5
    [yuq@localhost ~]$ cat -n /etc/passwd |head -15|tail -5

  • 相关阅读:
    P1099 [NOIP2007 提高组] 树网的核
    UVA 数学题选做
    Codeforces 729 Div.2
    P1600 [NOIP2016 提高组] 天天爱跑步
    CF1106F Lunar New Year and a Recursive Sequence
    P6091 【模板】原根
    P4774 [NOI2018] 屠龙勇士
    P1106 删数问题
    P1209 [USACO1.3]修理牛棚 Barn Repair
    网络(network)
  • 原文地址:https://www.cnblogs.com/ytb-wpq/p/6994519.html
Copyright © 2011-2022 走看看