1、管线命令(pipe |)
如果一些数据需要经过处理,且是本次处理结果是下一个命令的输入,即一些数据经过几道手续之后才是我们所想要的格式,用到管道命令,用|,注意:
- 管道命令只能处理经由前一个指令传来的正确信息,也就是standard output的信息。
- 每个|后面接的第一个数据必须是指令,且这个指令必须能够接受standard input的数据,比如less,more可以,cp,mv等则不行
- 但是如果想处理standard error,可以把2变成1 ,即2>&1
1.1 、撷取命令:cut和grep
撷取命令就是经过分析得到我们想要的,cut和grep一般是一行一行的去分析
cut
将一段信息的某一段切下来,主要是用于同一行的数据进行分解,然后取出符合要求的一段
练习:
grep
grep分析一行,如果这一行有我们想要的,则把一行输出
1.2 、排序命令:sort,wc,uniq
练习:
wc:知道一个文件中有多少个字,多少行,多少个字符
练习:
1.3、双向重导向:tee
tee会同时将数据流分送到屏幕和文件中
1.4、字符转换命令:tr,col,join,paste,expand
- tr:可以用来删除一段讯息当中的文字,或者是进行文字信息的替换
- col:将tab键转换成对等的空格键
- join:处理两个文件的数据,主要是在处理两个文件当中,有相同数据的哪一行,才将他加在一起,在使用join之前,需要处理的文件应该要事先经过排序处理,否则有些比对的项目会被忽略掉,是对有相关性数据的两个文件进行处理
例如:
- paste:直接将两行贴在一起,且中间以tab键隔开
- expand:将tab按键转成空格键
1.5、分区命令split
讲一个大文件,依据文件大小或者行数可以把大文件区分成小文件
1.6、参数代换:xargs
xargs可以读入stdin的数据,并且以空格符或者断行符作为分辨,将stdin分割成一个一个的参数
举例:
1.7、关于减号-的用途
在管线命令中,会出现使用前一个命令的stdout作为本次的stdin,但是如果没有文件名,可以用-代替。例如: