ddddandy@Fred:~/fred$ lsa abc bb ccc ddddandy@Fred:~/fred$ cat ddddabcdandy@Fred:~/" />

Linux管道、重定向及多命令

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

管道和重定向

多命令协作就是通过管道和重定向机制完成的

1.命令行shell的数据流定义

2.重定向

>将STDOUT重定向到文件(覆盖)

andy@Fred:~/fred$ echo "abcd" > dddd

andy@Fred:~/fred$ ls

a abc b

b cc

c dddd

andy@Fred:~/fred$ cat dddd

abcd

andy@Fred:~/fred$ ls -l

总用量12

-rw-r--r-- 1 andy andy 0 1月 3 21:43 a

drwxr-xr-x 2 andy andy 4096 1月 5 10:47 abc

-rw-r--r-- 1 andy andy 0 1月 3 21:43 bb

-rw-r--r-- 1 andy andy 24 1月 3 21:43 ccc

-rw-r--r-- 1 andy andy 5 1月7 21:33 dddd

andy@Fred:~/fred$ ls -l > ddd

andy@Fred:~/fred$ cat ddd

总用量12

-rw-r--r-- 1 andy andy 0 1月 3 21:43 a

drwxr-xr-x 2 andy andy 4096 1月 5 10:47 abc

-rw-r--r-- 1 andy andy 0 1月 3 21:43 bb

-rw-r--r-- 1 andy andy 24 1月 3 21:43 ccc

-rw-r--r-- 1 andy andy 0 1月7 21:35 ddd

-rw-r--r-- 1 andy andy 5 1月7 21:33 dddd

>>将STDOUT重定向到文件(追加到最后,另起一行)

错误信息是不能添加进入的

2>是将错误信息进行添加,但是正确是信息是不会写入。

STDOUT即为不含错误信息。

2>&1将STDOUT和STDERR结合,全部返回

< 重新定向标准输入STDIN

如:grep(查找关键字)linuxcast < /etc/passwd

将passwd这个文件的内容作为标准输入输入给命令

管道:|

将一个命令的STDOUT作为另一个命令的STDIN

root@Fred:/# find / -user andy 2> /aaaa/null | grep andy #从更目录查找,用户名是

/tmp/vmware-andy #andy的文件及目录,然后

/tmp/vmware-andy/vmware-apploader-3597.log #将错误信息写入null文件

/tmp/vmware-andy/vmware-apploader-4284.log #在输出的信息中查找关键

/tmp/orbit-andy #字andy,并输出

/tmp/tracker-andy

管道:通常用来组合不同的命令,实现复杂的功能

重定向:用来保存命令的输出信息或错误信息,可以用来记录执行结果或保存错误信息到指定文件。也可作为筛选输出的方法

LINUX系统基础---文本处理

1.基于关键字搜索文本grep

grep aaa /etc/passwd 从passwd这个纯文本文件中搜关键字aaa 搜索的关键字是一个单词的话不需加“”。

-i 搜索时忽略大小写

-n 现实结果所在行数

-v 输出不带关键字的行

-Ax输出关键字所在行的之后几行

-Bx 输出关键字所在行的之前几行

基于列处理文本

andy@fred:~$ grep -B3 andy /etc/passwd

rtkit:x:109:116:RealtimeKit,,,:/proc:/bin/false

saned:x:110:117::/home/saned:/bin/false

Debian-gdm:x:111:118:Gnome Display Manager:/var/lib/gdm3:/bin/false

andy:x:1000:1000:andy,,,:/home/andy:/bin/bash

列之间用“:”进行分隔,表示不同信息

如何做到只显示某一列的信息:

cut命令

cut -d: f1 /etc/passwd

-d 指定分隔符(默认TAB)上面是指定“:”为分隔符

-f 指定输出列号

-c 基于字符进行分隔cut -c2-6 /etc/passwd #显示第2-6个字符处理输出信息

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

wc文本统计

-l 只统计行数-w 只统计单词

-c 只统计自己数-m 只统计字符数

sort对文本内容进行排序

-r倒序-n基于数字排序-f忽略大小写

-u 删除重复行-tc 使用c作为分隔符分割为列进行排序

-kx 基于指定字符分隔位列的排序时,指定基于哪个列排序uniq 删除重复的相邻行

diff文本比较

-i忽略大小写-b忽略空格数量的改变

-u 统一显示比较信息(一般用来生成patch补丁文件)

diff -u aaaa1 aaaa2 > final.patch

处理文本内容

删除关键字

tr -d ‘TMD’ < aaa 一个单词可以不用’’

转换大小写

tr ‘a-z’‘A-Z’ < aaa 尽量更换字母的个数相等可以不加’’搜索替换

sed

sed ‘s/linux/unix/g’ aaa 把aaa文件中所有unix换为linux s搜索

g如果一行中出现多个关键字,则都进行替换

相关文档
最新文档