shell学习4---管线命令|

本文详细介绍了Linux环境下常用的管道命令,包括cut、grep、sort等,解释了这些命令如何处理标准输出及错误输出,并展示了如何通过组合这些命令实现高效的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 管线命令 |
    每一个管线命令后面接的一定是一个命令
    管线命令仅会处理 standard output,对于 standard error output 会予以忽略
    管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。

  2. 常见命令:cut与grep
    cut:
    cut -c 字符区间 <==用于排列整齐的讯息 
    选项与参数: 
    -d :后面接分隔字符。与-f 一起使用; 
    -f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思; 
    -c :以字符 (characters) 的单位取出固定字符区间;

    grep [-acinv] [--color=auto] '搜寻字符串' filename 
    选项与参数: 
    -a :将 binary 档案以 text 档案的方式搜寻数据 
    -c :计算找到 '搜寻字符串' 的次数 
    -i :忽略大小写的不同,所以大小写规为相同 
    -n :顺便输出行号 
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! 
    --color=auto :可以将找到的关键词部分加上颜色的显示
  3. 排序命令: sort, wc, uniq
    sort [-fbMnrtuk] [file or stdin] 
    选项与参数:
    -f :忽略大小写的差异,例如 A 与a 规为编码相同;
    -b :忽略最前面癿空格符部分;
    -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
    -n :使用『纯数字』进行排序(默认是以文字型态来排序的);
    -r :反向排序;
    -u :就是 uniq ,相同的数据中,仅出现一行代表;
    -t :分隔符,预设是用 [tab] 键来分隔;
    -k :以那个区间 (field) 来进行排序的意思

    uniq [-ic]   (重复的资料仅一个显示)
    选项与参数:
    -i :忽略大小写字符的不同;
    -c :进行计数

    wc [-lwm]
    选项与参数:
    -l :仅列出行;
    -w :仅列出多少字(英文单字);
    -m :多少字符;
  4. tee [-a] file  (双向重导向,将信息输送到档案的同时再输送到屏幕)
    选项与参数: -a :以累加 (append) 的方式,将数据加入 file 当中
  5. 字符转换命令: tr, col, join, paste, expand
    tr [-ds] SET1 ...
    选项与参数:
    -d :删除讯息当中的 SET1 这个字符串;
    -s :取代掉重复的字符!

    col [-xb]
    选项与参数:
    -x :将 tab 键转换成对等的空格键
    -b :在文字内有反斜杠 (/) 时,仅保留反斜杠最后接的那个字符

    join [-ti12] file1 file2
    选项与参数:
    -t :join 默认以空格符分隔数据,并且比对『第一个字段』的数据, 如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个!
    -i :忽略大小写的差异;
    -1 :这个是数字的1 ,代表『第一个档案要用那个字段来分析』的意思;
    -2 :代表『第二个档案要用那个字段来分析』的意思。
    例如:join -t ':' /etc/passwd /etc/shadow > passwd.txt

    paste [-d] file1 file2 (直接将两行贴在一起,中间以tab键分开)
    选项与参数:
    -d :后面可以接分隔字符。预设是以 [tab] 来分隔的!
    - :如果 file 部分写成 - ,表示来自 standard input 的资料的意思。

    expand [-t] file (将 tab 转换成空格)
    选项与参数:
    -t :后面可以接数字。一般来说,一个 tab 按键可以用 8 个空格键取代。 我们也可以自行定义一个 [tab] 按键代表多少个字符


    split [-bl] file PREFIX (将大档案分割成小档案)
    选项与参数:
    -b :后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等;
    -l :以行数来进行分割。 PREFIX :代表前导符的意思,可作为分割档案的前导文字。

    参数代换:xargs
    xargs [-0epn] command
    选项与参数: -0 :如果输入的 stdin 含有特殊字符,例如 `, \, 空格键等等字符时,这个 -0 参数 可以将他还原成一般字符。这个参数可以用于特殊状态喔!
    -e :这个是 EOF (end of file) 的意思。后面可以接一个字符串,当 xargs 分析到这个字符串时,就会停止继续工作!
    -p :在执行每个指令的 argument 时,都会询问使用者的意思;
    -n :后面接次数,每次 command 指令执行时,要使用几个参数的意思。
    例如:cut -d':' -f1 /etc/passwd | xargs -p -n 5 finger(将所有的 /etc/passwd 内癿账号都以 finger 查阅,但一次仅查阅五个账号)
  6. 关于减号 - 的用途
    某些指令需要用到文件名 (例如 tar) 来进行处理时,该 stdin 不 stdout 可以利用减号 "-" 来替代
    ar -cvf - /home | tar -xvf -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值