開(kāi)發(fā)人員常用什么linux命令
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀摹5绻闶侵滥阋獙ふ业奈募拿值脑?,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">開(kāi)發(fā)人員常用什么linux命令
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 class="main">
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀摹5绻闶侵滥阋獙ふ业奈募拿值脑?,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">開(kāi)發(fā)人員常用什么linux命令
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 class="main">
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
jfields$ cat order.* | sort | grep Patterns \ >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
, ' class="main">開(kāi)發(fā)人員常用什么linux命令
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 class="main">
開(kāi)發(fā)人員常用什么linux命令
Linux命令很豐富,有些人很頭疼。那么開(kāi)發(fā)人員常用什么linux命令呢?下面跟著學(xué)習(xí)啦小編來(lái)一起了解下吧。
開(kāi)發(fā)人員常用linux命令
注意:下面的每個(gè)命令都有十分豐富的文檔說(shuō)明。這篇文章并不是來(lái)詳盡的展示每個(gè)命令的各種功用的。我在這里要講的是這幾個(gè)最常用的命令的最常見(jiàn)用法。如果你對(duì)linux命令并不是很了解,你想找一些這方面的資料學(xué)習(xí),那這篇文章將會(huì)給你一個(gè)基本的指導(dǎo)。
讓我們從處理一些數(shù)據(jù)開(kāi)始。假設(shè)我們有兩個(gè)文件,分別記錄的訂單清單和訂單處理結(jié)果。
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
cat – 連接文件,并輸出結(jié)果
cat 命令非常的簡(jiǎn)單,你從下面的例子可以看到。
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
就像它的說(shuō)明描述的,你可以用它來(lái)連接多個(gè)文件。
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
如果你想看這些log文件的內(nèi)容,你可以把它們連接起來(lái)并輸出到標(biāo)準(zhǔn)輸出上,就是上面的例子展示的。這很有用,但輸出的內(nèi)容可以更有邏輯些。
sort
sort – 文件里的文字按行排序
此時(shí)sort命令顯然是你最佳的選擇。
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
就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過(guò)排序。對(duì)于一些小文件,你可以讀取整個(gè)文件來(lái)處理它們,然而,真正的log文件通常有大量的內(nèi)容,你不能不考慮這個(gè)情況。此時(shí)你應(yīng)該考慮過(guò)濾出某些內(nèi)容,把cat、sort后的內(nèi)容通過(guò)管道傳遞給過(guò)濾工具。
grep
grep, egrep, fgrep – 打印出匹配條件的文字行
假設(shè)我們只對(duì)Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。
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
假設(shè)退款訂單113出了一些問(wèn)題,你希望查看所有相關(guān)訂單——你又需要使用grep了。
jfields$ cat order.* | sort | grep ":\d\d 113, " 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing
你會(huì)發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因?yàn)?13還可以匹配上書目或價(jià)格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。
現(xiàn)在我們已經(jīng)知道了退貨的詳細(xì)信息,我們還想知道日銷售和退款總額。但我們只關(guān)心《Patterns of Enterprise Architecture》這本書的信息,而且只關(guān)心數(shù)量和價(jià)格。我現(xiàn)在要做到是切除我們不關(guān)心的任何信息。
cut
cut – 刪除文件中字符行上的某些區(qū)域
又要使用grep,我們用grep過(guò)濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分?jǐn)?shù)據(jù)。
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
現(xiàn)在,我們把數(shù)據(jù)縮減為我們計(jì)算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結(jié)果了。
cut是用來(lái)消減信息、簡(jiǎn)化任務(wù)的,但對(duì)于輸出內(nèi)容,我們通常會(huì)有更復(fù)雜的形式。假設(shè)我們還需要知道訂單的ID,這樣可以用來(lái)關(guān)聯(lián)相關(guān)的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號(hào)包上。
sed
sed – 一個(gè)流編輯器。它是用來(lái)在輸入流上執(zhí)行基本的文本變換。
下面的例子展示了如何用sed命令變換我們的文件行,之后我們?cè)谠儆胏ut移除無(wú)用的信息。
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'
我們對(duì)例子中使用的正則表達(dá)式多說(shuō)幾句,不過(guò)也沒(méi)有什么復(fù)雜的。正則表達(dá)式做了下面幾種事情
刪除時(shí)間戳
捕捉訂單號(hào)
刪除訂單號(hào)后的逗號(hào)和空格
捕捉余下的行信息
里面的引號(hào)和反斜杠有點(diǎn)亂,但使用命令行時(shí)必須要用到這些。
一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。
現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀?。但如果你是知道你要尋找的文件的名字的話,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用
來(lái)存儲(chǔ)它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號(hào),為了保持格式統(tǒng)一,我們還加入了逗號(hào)。最后,用cut命令把不必要的數(shù)據(jù)刪除。現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡(jiǎn)潔的訂單形式,但我們的財(cái)務(wù)部門需要知道訂單里一共有哪些書。
uniq
uniq – 刪除重復(fù)的行
下面的例子展示了如何過(guò)濾出跟書相關(guān)的交易,刪除不需要的信息,獲得一個(gè)不重復(fù)的信息。
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture
看起來(lái)這是一個(gè)很簡(jiǎn)單的任務(wù)。
這都是很好用的命令,但前提是你要能找到你想要的文件。有時(shí)候你會(huì)發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們?cè)谀摹5绻闶侵滥阋獙ふ业奈募拿值脑?,這對(duì)你就不是個(gè)問(wèn)題了。
find
find – 在文件目錄中搜索文件
在上面的例子中我們處理了order.in.log和order.out.log這兩個(gè)文件。這兩個(gè)文件放在我的home目錄里的。下面了例子將向大家展示如何在一個(gè)很深的目錄結(jié)構(gòu)里找到這樣的文件。
jfields$ find /Users -name "order*" Users/jfields/order.in.log Users/jfields/order.out.log
find命令有很多其它的參數(shù),但99%的時(shí)間里我只需要這一個(gè)就夠了。
簡(jiǎn)單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時(shí),你用管道把它們輸出到屏幕上是可以的,但當(dāng)文件大到超出屏幕時(shí),你也許應(yīng)該用管道把它們輸出給less命令。
less
less – 在文件里向前或向后移動(dòng)
讓我們?cè)倩氐胶?jiǎn)單的 cat | sort 例子中來(lái),下面的命令就是將經(jīng)過(guò)合并、排序后的內(nèi)容輸出到less命令里。在 less 命令,使用“/”來(lái)執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個(gè)正則表達(dá)式。
jfields$ cat order* | sort | less
如果你在 less 命令里使用 /113.*,所有113訂單的信息都會(huì)高亮。你也可以試試?.*112,所有跟訂單112相關(guān)的時(shí)間戳都會(huì)高亮。最后你可以用 ‘q’ 來(lái)退出less命令。
Linux里有很豐富的各種命令,有些是很難用的。然而,學(xué)會(huì)了前面說(shuō)的這8個(gè)命令,你已經(jīng)能處理大量的log分析任務(wù)了,完全不需要用腳本語(yǔ)言寫程序來(lái)處理它們。
看過(guò)“開(kāi)發(fā)人員常用什么linux命令”的人還看了:
5.mv命令怎么用