linux 管道 减号,Linux命令---管道命令(cut、sort、wc、uniq、tee、tr、join、split、xargs、减号-)...

本文目录:

1.字符串截取:cut

2.排序:sort

3.去重:uniq

4.计算:wc

5.双向重导向:tee

6.字符转换命令:tr

7.字符转换命令:join

8.分区命令:split (即:大文件拆成小文件)

9.参数代换:xargs

11.减号 -

1.字符串截取:cut

cut 主要的用途在于将『同一行里面的数据进行分解!』。最常使用在分析一些数据或文字数据的时候!要注意的是,一般来说,cut 命令通常是针对『一行』的数据来分析,并不是整篇内容分析的。

e190cfb1d8653c562afb9a2d00e647a7.png

2.排序:sort

sort 可以帮我们进行排序,而且可以依据不同的数据型态来排序喔! 例如数字与文字的排序就不一样。此外,排序的字符与语系的编码有关

a1f82911af74d80c2cf644fddd0a1f41.png

3.去重:uniq

uniq 用于去重 (范例一应该有点问题,排序后取出一位,应该还得加| head -1)

uniq 去重指令,是将重复的东西减少,所以必须『配合排序过的文件』来处理!

fc3a19b9da74aeefde22a9c1e69484a5.png

4.计算:wc

wc 命令,用来帮我们计算数据有多少字?多少行?多少个字符等。它是相当有用的计算文件内容的一个工具。

2e98b911ea901e1cc0410a6a38cb3b64.png

5.双向重导向:tee

双向重导向:tee (同>,>>,我们知道 > 会将数据流整个传送给文件或装置,因此我们除非去读取该文件或装置, 否则就无法继续利用这个数据流。

万一我想要将这个数据流的处理过程中将某段内容存下来,应该怎么做? 利用 tee 就可以啰~tee 会同时将数据流分送到文件与屏幕 (screen);而输出到屏幕的,其实就是 stdout ,那就可以让下个指令继续处理喔!

tee 可以让 standard output 转存一份到文件内并将同样的数据继续送到屏幕去处理! 这样除了可以让我们同时分析一份数据并记录下来之外,还可以作为处理一份数据的中间暂存盘记录之用!

我们可以这样简单的看一下:

5ea4571c38b0e08637b42e71c9c2882d.png

35a4383a9326cd19e3a48aa191f28323.png

6.字符转换命令:tr

tr 命令用于转换或删除文件中的字符。

tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

语法:

tr [OPTION]…SET1[SET2]

参数说明:(还有其他的参数,用上概率不大,此处只介绍能用上的)

-d:删除指令字符

-s:缩减连续重复的字符成指定的单个字符

e8eb16c7aa89680e97845f9d6a834cde.png

7.字符转换命令:join

join 看字面上的意义 (加入/参加) 就可以知道,他是在处理两个文件之间的数据, 而且,主要是在处理『两个文件当中,有 "相同数据" 的那一行,才将他加在一起』的意思。

需要特别注意的是,在使用 join 之前,你所需要处理的文件应该要事先经过排序 (sort) 处理!否则有些比对的项目会被略过呢!

c19f0610904e87a44e13b1df4b582dd8.png

这个 join 在处理两个相关的数据文件时,就真的是很有帮助的啦! 例如上面的案例当中,我的 /etc/passwd, /etc/shadow, /etc/group 都是有相关性的, 其中 /etc/passwd, /etc/shadow 以账号为相关性,至于 /etc/passwd, /etc/group 则以所谓的 GID (账号的数字定义) 来作为他的相关性。根据这个相关性,我们可以将有关系的资料放置在一起!这在处理数据可是相当有帮助的! 但是上面的例子有点难,希望您可以静下心好好的看一看原因喔

此外,需要特别注意的是,在使用 join 之前,你所需要处理的文件应该要事先经过排序 (sort) 处理!否则有些比对的项目会被略过呢!特别注意了!

8.分区命令:split (即:大文件拆成小文件)

如果你有文件太大,导致一些携带式装置无法复制的问题,嘿嘿!找 split 就对了! 他可以帮你将一个大文件,依据文件大小或行数来分区,就可以将大文件分区成为小文件了! 快速又有效啊!真不错~

4e9ce7899b4e4e740ba4ad3137eac9f3.png

在 Windows 操作系统下,你要将文件分区需要如何作?伤脑筋吧!在 Linux 底下就简单的多了!你要将文件分区的话,那么就使用 -b size 来将一个分区的文件限制其大小,如果是行数的话,那么就使用 -l line 来分区!好用的很!如此一来,你就可以轻易的将你的文件分区成某些软件能够支持的最大容量 (例如 gmail 单一信件 25MB 之类的!),方便你 copy 啰!

注意:

重点在那个 - 啦!一般来说,如果需要 stdout/stdin 时,但偏偏又没有文件,有的只是 - 时,那么那个 - 就会被当成 stdin 或 stdout ~

9.参数代换:xargs

其实,在 man xargs 里面就有三四个小范例,您可以自行参考一下内容。 此外, xargs 真的是很好用的一个玩意儿!您真的需要好好的参详参详!使用 xargs 的原因是, 很多指令其实并不支持管线命令,因此我们可以透过 xargs 来提供该指令引用 standard input 之用!举例来说,我们使用如下的范例来说明:

04436dcd3866328d9e1701e7865e7ec1.png

11.减号 -

管线命令在 bash 的连续的处理程序中是相当重要的!另外,在 log file 的分析当中也是相当重要的一环, 所以请特别留意!另外,在管线命令当中,常常会使用到前一个指令的 stdout 作为这次的 stdin , 某些指令需要用到文件名 (例如 tar) 来进行处理时,该 stdin 与 stdout 可以利用减号 "-" 来替代, 举例来说:

8223cc1bde905cbc04c0bcdf2a26285c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值