Linux管道、重定向及文本处理

来源:互联网 发布:linux wifi局域网ip 编辑:程序博客网 时间:2024/05/22 03:27

在Linux中,几乎所有的命令的返回数据都是纯文本,而纯文本形式的数据又是绝大多数命令的输入格式,这就让多命令协作成为可能。Linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的。

命令行shell的数据流定义:

名称 说明 编号 默认

STDIN 标准输入 0 键盘

STDOUT 标准输出1 终端

STDERR 标准错误2 终端

管道和重定向

分类 关键字 定义

> 将1重定向到文件(覆盖形式)

>> 将1重定向到文件(追加形式)

2> 将2重定向到文件(覆盖形式)

重定向 2>&1 将2和1结合

< 重定向0

管道 | 将一个命令的1作为另外一个的0

基于关键字的搜索

grep 'peter' /etc/passwd

find / -user peter | grep Video

-i 在搜索的时候忽略大小写

-n 显示结果所在行

-v 输出不带关键字的行

-Ax 在输出的时候包含结果所在行之后的指定行数

-Bx 在输出的时候包含结果所在行之前的指定行数

基于列处理文本

cut -d: -f1 /etc/passwd

grep peter /etc//passwd | cut -d: -f3

-d指定分割字符(默认是TAB)

-f指定输出的列号

-c基于字符进行切割 cut -c2-6 /etc/passwd显示结果的2-6个字符

文本统计

wc peter 

-l 只统计行数

-w 只统计单词

-c 只统计字节数

-m 只统计字符数

文本排序

sort peter

-r 进行倒序排序

-n 基于数字进行排序

-f 忽略大小写

-u 删除重复行  unip 删除相邻的重复行

-t c 使用C作为分割符分割为列进行排序

-k x 当进行基于指定字符分割为列的排序时,指定基于哪个列排序

文本比较

diff peter peter-new

-i 忽略大小写

-b 忽略空格数量的改变

-u 统一显示比较信息(一般用以生成.path文件补丁)diff -u peter peter-new > final.path

处理文本内容

tr -d 'TMD' < peter 删除关键字

tr 'a-z' 'A-Z' < peter 转换大小写


0 0
原创粉丝点击