当前位置:首页 > 芯闻号 > 充电吧
[导读] 每个开发人员到了他们职业人生的某个阶段的时候,将会发现自己要寻找有关Linux的信息。我并不是这方面的专家。但是掌握了以下8个命令,我几乎可以得到我任何需要的东西。注意:以下的命令都有很多扩展的文档,博客里

 每个开发人员到了他们职业人生的某个阶段的时候,将会发现自己要寻找有关Linux的信息。我并不是这方面的专家。但是掌握了以下8个命令,我几乎可以得到我任何需要的东西。

注意:以下的命令都有很多扩展的文档,博客里提出的知识我最常用的命令,用法。如果你不了解Linux命令,这个帖子会给你一点指导。

我们以一些文本举例。假设我们有2个文件,里面有订单关于第三方的放置地点和发送回应。

order.out.log

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

order.in.log

8:22:20 111, Order Complete

8:23:50 112, Order sent to fulfillment

8:24:20 113, Refund sent to processing

cat

http://linux.about.com/od/commands/l/blcmdl1_cat.htm

–追加文件并在标准输出上打印

jfields$ cat order.out.log

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

正如他的名字所说的,你可以串联多个文件

jfields$ cat order.*

8:22:20 111, Order Complete

8:23:50 112, Order sent to fulfillment

8:24:20 113, Refund sent to processing

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

看到效果了,但我们可以提高其可读性。

sort

http://linux.about.com/library/cmd/blcmdl1_sort.htm

–对文本文件进行行排序,这里使用排序是不错的选择

jfields$ cat order.* | sort

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:22:20 111, Order Complete

8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99

8:23:50 112, Order sent to fulfillment

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:20 113, Refund sent to processing

上面显示了我们想要看到的效果,但是这只是小文件。而真实的数据是很大的,有些是你不想要的数据怎么办?

grep

http://linux.about.com/od/commands/l/blcmdl1_grep.htm

grep, egrep, fgrep–进行匹配输出

假设我只关心给PofEAA的订单,使用grep就可以做到。

jfields$ cat order.* | sort | grep Patterns

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

假设订单113里面发生了一些问题,你想看到关于113的所有订单信息。没错,grep能帮你。

jfields$ cat order.* | sort | grep “:dd 113, ”

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:20 113, Refund sent to processing

你会发现在表达式里面不止有113,这是因为113也可能出现在价格里面,或者产品里面,这样做是严格限制其查找结果。

现在我们已经发出退货订单的信息,我们每日也要给会计发送销售统计。他们要求每个PofEAA的项目,但他们只关心数量和价格,我们要把

不需要的部分删减掉。

cut

http://linux.about.com/od/commands/l/blcmdl1_cut.htm

–从文件的每一行删除一部分

还是要先使用grep。

jfields$ cat order.* | sort | grep Patterns

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

jfields$ cat order.* | sort | grep Patterns | cut -d”,” -f2,5

1, 39.99

-1, 39.99

我们已经减少了数据,让会计一目了然。

假设会计想要把订单ID做为参考,把它放在每一行的最后,并用单引号。

sed

http://linux.about.com/od/commands/l/blcmdl1_sed.htm

–流编辑器。用来处理文本转换。

下面的示例演示怎样使用它来做到我们想要的数据。

jfields$ cat order.* | sort | grep Patterns

>| sed s/”[0-9:]* ([0-9]*), (.*)”/”2, ‘1′”/

1, Patterns of Enterprise Architecture, Kindle edition, 39.99, ’111′

-1, Patterns of Enterprise Architecture, Kindle edition, 39.99, ’113′

lmp-jfields01:~ jfields$ cat order.* | sort | grep Patterns

>| sed s/”[0-9:]* ([0-9]*), (.*)”/”2, ‘1′”/ | cut -d”,” -f1,4,5

1, 39.99, ’111′

-1, 39.99, ’113′

这是一个正则表达式,但没什么复杂的。做以下事情

1.删除时间

2.捕获订单号

3.删除逗号和订单号后面的空格

4.捕获此行的其余部分

一旦我们看到了我们需要的数据,可以使用1&2让输出数据符合我们的格式要求。

uniq

http://linux.about.com/library/cmd/blcmdl_uniq.htm

–去除重复行

下面的示例演示如何grep的唯一相关的交易,削减不必要的信息,并获得计数。[!--empirenews.page--]

jfields$ cat order.out.log | grep “(Kindle|Hardcover)” | cut -d”,” -f3 | sort | uniq -c

1 Joy of Clojure

2 Patterns of Enterprise Architecture

jfields$ cat order.out.log | grep “(Kindle|Hardcover)” | cut -d”,” -f3 | sort | uniq

Joy of Clojure

Patterns of Enterprise Architecture

find

http://linux.about.com/od/commands/l/blcmdl1_find.htm

–在目录里找文件

假设这2个文本文件存在于我们的主目录,我们不必知道他们的全名。

jfields$ find /Users -name “order*”

Users/jfields/order.in.log

Users/jfields/order.out.log

当然还有很多选项,但99%的情况下我这么做。

less

http://linux.about.com/library/cmd/blcmdl1_less.htm

–在一个文件里面向前向后移动

让我们回到最简单的cat|sort的例子。你可以向前搜索使用”/”,向后使用”?”,2者都可以使用正则表达式。

jfields$ cat order* | sort | less

你可以试试/113.*,这将突出显示订单113。你可以使用?.*112,也将突出显示订单112,你可以用’q'退出。

Linux命令很丰富,有些人很头疼。这几个命令应该能帮你完成大部分的文本工作,不用交到你的脚本语言手里。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2022年4月20日讯)坚固耐用的移动计算机制造商Handheld Group宣布向一家物流解决方案领域的全球领先企业交付创纪录订单。此项创纪录订单是Handheld新推出的SP500X ScanPrint...

关键字: AN CAN INTER ORDER

最初do...while的出现,更多的是作为循环控制流的一种语法糖。因为不论是while还是for循环,都是要先判断是否满足进入循环体的条件的。满足条件之后才能进入循环去执行循环体内的操作。而有些时候,第一次的执行逻辑我...

关键字: WHILE POWER LEETCODE ORDER

关注、星标公众号,直达精彩内容文章来源:segmentfault作者:Ethson【导读】:树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。在面试环节中,二叉树也是必考的模块。本文主要讲二叉树操作的相关知识,梳理...

关键字: C代码 BSP ORDER WHILE

【导读】:树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。在面试环节中,二叉树也是必考的模块。本文主要讲二叉树操作的相关知识,梳理面试常考的内容。请大家跟随小编一起来复习吧。本文针对面试中常见的二叉树操作做个总结...

关键字: C代码 ORDER WHILE RETURN

Loopring,路印,一直专注在高性能的去中心化交易协议。路印协议的目标是想实现以太坊上基于订单撮合的去中心化的交易协议。从2017年,路印从“环路撮合”的最初设计,经过了1.0,2.0以及3

关键字: 电路 ORDER AI AC

可重入(Reentrancy)或整数溢出漏洞,是大多数开发人员知道或者至少听说过的,关于智能合约当中容易出现的安全问题。另一方面,在考虑智能合约的安全性时,你可能不会立即想到针对密码签名实现的攻

关键字: 智能合约 ORDER FORWARD ADDRESS

什么是黑池(Dark Pool)? 黑池是一种通过隐秘方式促使金融交易的工具。与公开交易所不同,它并不具有透明的委托簿(order book),黑池是在非公开可见下交易(或仅在交易执行完

关键字: 加密 AD ATOM ORDER

最近国内疫情逐渐缓和,小吃店、零食店陆续复工,难免让人食指大动。 新闻里的主人公小丁买了一堆零食,吃完才发现嘴巴不听使唤了。 医生说,这是“颞颔关节功能紊乱症”,也就是常言说的“下巴掉了”&helli

关键字: NDASH ISO ORDER COM

作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通...

关键字: LINUX命令 BSP TEST PS

概述:Linux shell/terminal命令非常强大,即使一个简单的命令就可能导致文件夹、文件或者路径文件夹等被删除。为了避免这样的事情发生,我们应该时刻注意PHP代码&命令,

关键字: 代码 LINUX命令 COMMAND RF
关闭
关闭