主頁(yè) > 知識(shí)庫(kù) > Linux命令行里的“瑞士軍刀”

Linux命令行里的“瑞士軍刀”

熱門標(biāo)簽:河南信譽(yù)好的不封卡電話外呼系統(tǒng) 如果做線上地圖標(biāo)注 客服外呼系統(tǒng)怎么樣 地圖標(biāo)注員都是年輕人 打電話機(jī)器人接我是他的秘書 揭陽(yáng)智能電話機(jī)器人推薦 百度地圖標(biāo)注錯(cuò)了有責(zé)任嗎 江蘇云電銷機(jī)器人公司 華鋒e路航港口地圖標(biāo)注

這里說的“瑞士軍刀”是指那些簡(jiǎn)單的一句命令就能完成其它高級(jí)語(yǔ)言一大片代碼才能完成的工作。

下面的這些內(nèi)容是Quora網(wǎng)站上Joshua Levy網(wǎng)友的總結(jié):

通過sort/uniq獲取文件內(nèi)容的交集、合集和不同之處:假設(shè)有a、b兩個(gè)文本文件,文件本身已經(jīng)去除了重復(fù)內(nèi)容。下面是效率最高的方法,可以處理任何體積的文件,甚至幾個(gè)G的文件。(Sort對(duì)內(nèi)存沒有要求,但也許你需要用 -T 參數(shù)。)可以試著比較一下,你可以看看如果用Java來(lái)處理磁盤上文件的合并,需要用多少行代碼。

復(fù)制代碼 代碼如下:

cat a b | sort | uniq > c # c 是a和b的合集
cat a b | sort | uniq -d > c # c 是a和b的交集
cat a b b | sort | uniq -u > c # c 是a和b的不同


匯總一個(gè)文本內(nèi)容里第三列數(shù)字的和(這個(gè)方法要比用Python來(lái)做快3倍并只需1/3的代碼量):

復(fù)制代碼 代碼如下:
awk ‘{ x += $3 } END { print x }' myfile


如果你想查看一個(gè)目錄樹里的文件的體積和修改日期,用下面的方法,相當(dāng)于你挨個(gè)目錄做”ls -l”,而且輸出的形式比你用”ls -lR”更可讀:
復(fù)制代碼 代碼如下:

find . -type f -ls

使用xargs命令。這個(gè)命令非常的強(qiáng)大。注意每行上你可以控制多少個(gè)東西的執(zhí)行。如果你不確定它是正確的執(zhí)行,先使用xargs echo。同樣,-I{} 也非常有用。例子:

復(fù)制代碼 代碼如下:

find . -name \*.py | xargs grep some_function
cat hosts | xargs -I{} ssh root@{} hostname


假設(shè)你有一個(gè)文本文件,比如一個(gè)web服務(wù)器日志,在某些行上有一些值,比如URL中的acct_id參數(shù)。如果你想統(tǒng)計(jì)每個(gè)acct_id的所有請(qǐng)求記錄:

復(fù)制代碼 代碼如下:

cat access.log | egrep -o ‘a(chǎn)cct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn ]


[英文原文:What are the most useful "Swiss army knife" one-liners on Unix?
您可能感興趣的文章:
  • Linux利用nc命令監(jiān)控服務(wù)器端口的方法
  • 使用netcat(瑞士軍刀)進(jìn)行文件傳輸

標(biāo)簽:邵陽(yáng) 淘寶邀評(píng) 巴彥淖爾 金昌 婁底 許昌 馬鞍山 赤峰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux命令行里的“瑞士軍刀”》,本文關(guān)鍵詞  Linux,命令行,里,的,瑞士軍刀,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux命令行里的“瑞士軍刀”》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Linux命令行里的“瑞士軍刀”的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章