热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

一、标准输入、标准输出、错误输出概述1.标准输入(stdin)是指令数据的输入,代码为0,使用2.标准输出(stdout)是指令执行成功返回的结果&#x

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

1.标准输入(stdin)是指令数据的输入,代码为0,使用

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

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

二、数据流重定向的使用

1."

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.



推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • 文件路径的生成及其在文件操作中的应用
    本文介绍了文件路径的生成方法及其在文件操作中的应用。在进行文件操作时,需要知道文件的具体位置才能打开文件。文件的位置有绝对路径和相对路径之分。绝对路径通常只在特定电脑上有效,不同电脑上的文件存放路径可能不同,导致程序报错。相对路径是解决这个问题的最好方式,它不依赖于文件的具体存放位置,只需要按照统一的规范进行文件存放即可。使用相对路径可以避免冗余和麻烦,特别适用于大项目和团队维护代码的情况。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • HashMap的扩容知识详解
    本文详细介绍了HashMap的扩容知识,包括扩容的概述、扩容条件以及1.7版本中的扩容方法。通过学习本文,读者可以全面了解HashMap的扩容机制,提升对HashMap的理解和应用能力。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
author-avatar
Defect___219
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有