您的位置:首页 > 运维架构 > Linux

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

2015-05-13 13:09 197 查看
在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 转换大小写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: