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

linuxcast笔记:linux重定向、管道和文本处理工具

2014-02-12 15:41 519 查看

一、重定向和管道

重定向和管道linux中命令基本都实现简单功能,通过将不同命令组合在一起使用达到复杂功能。

linux中提供管道和重定向机制来实现多命令协作,管道及重定向就是Linux多命令协作的基础机制

Linux的Shell对数据流进行以下分类定义:

名称
说明
编号
默认
stdin
标准输入
0
键盘
stdout
标准输出
1
终端
stderr
标准错误
2
终端
重定向用来控制终端数据流:

分类
关键字
作用
例子
重定向
>
将stdout以覆盖方式重定向到文件
ls>outfile
重定向
>>
将stdout以追加方式重定向到文件
date>>outfile
重定向
2>
将stderr重定向到文件(覆盖)
ls notexits 2>outfile (2> /dev/null 不输出错误信息)
重定向
2>&1
将stdout和stderr结合到一起
ls notexits 2>&1 outfile
重定向
<
重定向stdin
grep linuxcast < /etc/passwd
管道|将一个命令的stdout作为另一个命令的stdinls -l | grep linuxcast

find / -user linuxcast | grep video
管道“|”用以将一个命令的标准输出作为另一个命令的标准输入

二、文本处理命令

文件浏览

cat 查看文件内容

more 翻页查看文件内容(只能向下翻)

less 翻页查看文件内容(上下翻页)

head 查看文件开头10行

tail 查看文件结束10行

基于关键字搜索

grep 关键字 指定文件 ( 基于关键字搜索文本)

grep 'linuxcast' /etc/passwd

find / -user linuxcast | grep video(查找所属用户为linuxcast文件中包含video的文件)

-i 搜索时忽略大小写

-n 显示结果所在行

-v 显示不包含关键字的行(排除)

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

-Bx 在输出时候包含结果所在行之前几行

基于列处理文件

cut -d: -f1 /etc/passwd

-d 指定分割字符

-f 指定显示列

-c 基于字符顺序进行列分割

cut -c2-6 /etc/passwd (只显示第2到第6个字符)

文本统计(word count)

wc 文件

-l 只统计行数

-w 只统计单词数

-c 只统计字节数

-m 只统计字符数

文本排序

sort 文件

-r 倒序排序

-n 基于数字进行排序

-f 忽略大小写

-u 删除重复行

删除重复行

sort -u linuxcast

uniq 删除重复行(只能删除相邻重复行)

cat linuxcast | uniq

文本比较

diff linuxcast-1 linuxcast-2

-i 忽略大小写

-b 忽略空格数变化

-u 统一显示信息(一般用于生成patch文件)

检查拼写

aspell check linuxcast

处理文本内容

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

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

搜索替换

sed 正则表达式 文件

sed 's/linux/unix/g' linuxcast 将所有linux关键字替换为unix
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: