管道命令
管道命令使用“|”这个界定符,形式为“cmd1 | 才cmd2 | cmd3”,管道命令仅能处理前面一个命令传来的正确信息。每个管道后面接的第一个数据必定是“命令”,而且这个命令必须能够接收stdin的数据才行,这样的命令才可以是管道命令。
选取命令:cut,grep
选取命令就是将一段数据经过分析后,取出想要的,或者经由分析关键字得到所想要的那一行,选取信息通常针对“行”来分析的,并不是整篇信息分析的。
- cut
cut的主要用途在于将同一行的数据进行分解,最常使用在分析一些数据或文字数据的时候。
cut –d’分隔字符’ –f fields
cut –c 字符范围
参数:
-d:后面接分隔字符,与-f一起使用
-f:根据-d的分隔字符将一段信息切割成为数段,用-f取出第几段的意思
-c:以字符的单位取出固定字符区间
- grep
cut是在一行信息中取出某部分我们想要的,grep则是分析一行信息,有我们想要的就取出。
grep [-acinv] [--color=auto] ‘查找字符串’ filename
参数:
-a:将二进制文件以文本文件的方式查找数据
-c:计算找到‘查找字符串’的次数
-i:忽略大小写的不同
-n:输出行号
-v:反向选择,即显示出没有‘查找字符串’内容的一行
--color=auto:将关键字部分加上颜色显示
排序命令:sort,wc,uniq
- sort
sort可以依据不用的数据类型来排序。
sort [-fbMnrtuk] [file or stdin]
参数:
-f:忽略大小写的差异
-b:忽略最前面的空格符部分
-M:以月份的名字来显示
-n:使用纯数字进行排序
-r:反向排序
-u相同的数据中仅出现一行代表
-t:分隔符,默认是[tab]
-k:以那个区间来进行排序
- uniq
uniq用来将重复的数据仅列出一个显示。
uniq [-ic]
参数:
-i:忽略大小写
-c:进行计数
- wc
wc命令可以统计字符的数目。
wc [-lwm]
参数:
-l:仅列出行
-w:仅列出多少字
-m:多少字符
双向重定向:tee
tee可以将数据流同时送与文件与屏幕。
tee [-a] file
参数:
-a:以累加的方式,将数据加入file中
字符转换命令:tr,col,join,paste,expand
- tr
tr可以用来删除一段信息当中的文字,或者是进行文字信息的替换。
tr [-ds] SET1 ...
参数:
-d:删除信息当中的SET1这个字符串
-s:替换掉重复的字符串
- col
col经常被利用于将man page转存为纯文本文件以方便查阅的功能。
col [-xb]
参数:
-x:将tab键转换成对等的空格键
-b:在文字内有反斜杠时,仅保留反斜杠最后接的那个字符
- join
join用于两个文件的处理,主要是将两个文件当中有相同数据的那一行加在一起。
join [-ti12] file1 file2
参数:
-t:默认以空格符分隔数据
-i:忽略大小写
-1:代表第一个文件的哪个字段来分析的意思
-2: 代表第二个文件的哪个字段来分析的意思
- paste
相比于join命令,paste命令直接将两行贴在一起,中间以[tab]键隔开。
paste [-d] file1 file2
参数:
-d:后面接分隔字符,默认是[tab]
- expand
expand命令就是将[tab]键转化为空格键。
expand [-t] file
参数:
-t:后面接数字,定义[tab]键取代为多少个空格
切割命令:split
如果文件太大导致无法复制等问题,可以使用split命令来切割成为小文件,
split [-bl] file PREFIX
参数:
-b:接欲切割成文件的大小,可加单位
-l:以行数来进行切割
PREFIX:可作为切割文件的前导文字
参数代换:xargs
xargs的作用就是产生某个命令的参数的意思。很多命令不支持管道命令,可以通过xargs来提供该命令引用stdin之用。
xargs [-0epn] command
参数:
-0:将特殊字符还原为一般字符
-e:后面接一个字符串,分析到这个字符串停止工作
-p:接次数,表示每次command执行时,使用几个参数的意思
-n:
减号-的用途
在管道命令中,经常会使用前一个命令的stdout作为stdin,某些命令需要用到文件名来进行处理,该stdin和stdout就可以利用减号“-”来替代。