谈谈Linux下的数据流重定向和管道命令

摘要:
3.管道命令通过管道符"|"连接4.能够接收标准输入,如tail/more/grep等5.能够接收来自前一个指令的数据成功stdin进行处理四、管道命令的使用1.cut:为剪切的意思,它能将一行行的数据按照指定的分隔符切成一列列,然后只显示特定列的数据.cut-d'分隔符'-fn按照特定的分隔符将数据切分,并只显示第n列的数据。

一、标准输入、标准输出、错误输出概述

1.标准输入(stdin)是指令数据的输入,代码为0,使用<或者<<,默认是键盘。

2.标准输出(stdout)是指令执行成功返回的结果,代码为1,使用>或者>>,默认在屏幕显示。

3.标准错误输出(stderr)是指令执行失败返回的错误信息,代码为2,使用2>或者2>>,默认是屏幕。

二、数据流重定向的使用
1."<":指定输入的数据媒介来源(tr 'a-z' 'A-Z' < 文件名:将指定文件中的小写字母变为大写字母输出到屏幕)

2.">"、"1>":将正确的内容覆盖输出到指定的媒介

3.">>"、"1>>":将正确的内容追加到指定的媒介

4."2>":将错误覆盖输出到指定的媒介

5."2>>":将错误信息追加输出到指定的媒介

6."&>":将正确内容和错误信息覆盖输出到指定媒介

7."&>>":将正确内容和错误信息追加到指定的媒介

8.多个指令执行
bash1&&bash2(前者执行成功才会执行后者)

bash1||bash2(前者执行完毕且失败才执行后者)

三、管道命令概述

1.管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息。 如,/etc目录下会有大量的文件,如果使用ls很难找到需要的文件,因此可以使用管道命令将ls的结果进行一次筛选,只保留需要的信息。 

2.管道和数据流重定向的区别:

管道一词非常生动形象,原始数据经过管道后,管道会将一部分不需要的信息过滤掉,只保留用户所关注的信息。

数据流重定向是指定数据在哪里显示,默认情况下会在屏幕显示,我们可以指定它输出到文件。

3.管道命令通过管道符"|"连接

4.能够接收标准输入(stdin),如tail/more/grep等

5.能够接收来自前一个指令的数据成功stdin进行处理

四、管道命令的使用

1.cut:为剪切的意思,它能将一行行的数据按照指定的分隔符切成一列列,然后只显示特定列的数据.

cut -d '分隔符' -f n按照特定的分隔符将数据切分,并只显示第n列的数据。

cut -c 起始字符的下标-结束字符的下标 选择特定范围内的数据(cut中涉及的下标均从1开始)

2.grep:关键字查找

grep [-cinv] [--color=auto] '关键词' 待查找的文件名

-c:统计关键词出现的次数

-i:关键词忽略大小写

-n:输出行号

-v:反向选择,即查找不包含该关键字的行

--color=auto:关键词高亮

命令 | grep [-参数] ‘关键词’ 采用管道,将前一个命令的执行结果输出给grep,并通过grep的关键词搜索将符合条件的行搜索出来。

3.sort:排序

sort [-参数] 文件

-t:指定分隔符

-k:选取分隔符后的第几个字段进行排序

-f:排序时忽略选取字段的大小写

-b:取出选取字段前的空格

-M:将选取的字段按照月份来排序(前提是选取字段就是月份)

-n:将选取字段按照数据来排序(前提是选取字段就是数字)

-r:反向排序

-u:去重,若选取字段有重复,则去掉重复

命令 | sort [-参数] 使用管道,将前一个命令执行的结果按照指定字段进行排序。

4.uniq:只能用于管道,它能够去除前一个命令执行的结果中完全一样的行。

uniq [-参数] -i:忽略大小写 -c:进行重复行的统计

5.wc:统计字数、行数、字符数

wc [-参数] 文件名

-l 列出行数

-w 列出字数

-c 列出字符数

6.tee:能够同时将命令执行的结果输出到指定的文件和屏幕。只能结合管道使用

tee [-a] 文件 -a:以追加的形式写入文件。

7.join:连接两个文件

这个命令与管道无关。 它相当于数据库中的join连接,将两张表中指定字段,且字段相同的行连接起来。在这里,它能够将两个文件中指定字段的相同字段连接起来,并成一行。

join [-参数] 文件1 文件2

-t:两个文件的字段分隔符

-1:第一个文件的字段

-2:第二个文件的字段

-i:忽略所选字段的大小写

8.split:该命令能将一个大文件切分成若干个小文件。

split [-参数] 大文件 小文件名字前缀

      -b:指定小文件的大小,需要加上单位:b、k、m -l:指定每个小文件中的行数。  

大文件会被切分成若干个小文件,且小文件的名字为:小文件名字前缀+aa、小文件名字前缀+ab、小文件名字前缀+ac.

免责声明:文章转载自《谈谈Linux下的数据流重定向和管道命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇fastjson的使用——JSON字符串、JSON对象、Java对象的互转easyui---修改删除查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】FFmpeg采集设备

ffmpeg在linux下支持的采集设备的种类比较多。 在操作设备之前,我们可以查看当前系统可以支持的操作设备: ffmpeg -hide_banner -devices Devices: D. = Demuxing supported //输入的设备 .E = Muxing supported //输出的设备 -- DE alsa ALSA audio...

Linux (三)

chmod:用来改变文件或目录的访问权限 语法格式:chmod 【参数选项】 【mode】【文件或者目录】 参数选项: -v :显示权限变更的详细信息 -R :对当前目录下的所有文件以及子目录进行相同的权限变更 ​ (以递归的当时逐个变更) mode :是权限标记。可以有符号标记和八进制数两种格式。 文件或者目录 :要设置的文件名或者目录名,必须输入...

Linux下PHP自动生成文章预览图,html转换成各种格式图片、PDF-----转自phpboy的文章

原文地址:http://www.phpboy.net/linux/575.html 用WordPress建立博客站点,选择了一套可以显示文章缩略图的模板,几经折腾将原有模板改得面目全非,最后还是直接上线吧,不想折腾了。 站点上线没几天,在公司做项目时,对图片做了一个放大的JS,自己博客也加上点击缩略图查看原图的功能,然后迅速的加了。 过了几天,突发奇想,想...

linux安装python3

--linux安装python3 centos系统本身默认安装有python2.x,可通过python --version 查看系统自带的python版本,有一些系统命令需要用到python2,安装python3时不能卸载python2。 1、安装依赖包                                                   ...

kafka查询命令---Linux

kafka版本:kafka_2.12-2.1.1 kafka_port默认9092,zk_port默认2181 查看topicbin/kafka-topics.sh --zookeeper zk_ip:zk_port --list 查看groupbin/kafka-consumer-groups.sh --bootstrap-server kafka_ip...

mac终端下ssh虚拟机中的linux提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

重新装了虚拟机中的Linux系统后,在mac下ssh就连不上虚拟机了   localhost:~ zhouqian$ ssh root@172.17.9.19 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATI...