系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux命令行使用技術(shù)

Linux命令行的日常使用技術(shù)(5)

時間:2015-07-01 15:46:54 作者:zhijie 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150701/51942.html 手機查看 評論

  單行程序

  這是將命令連成一行的一些樣例:

  有時候通過 sort/uniq 對文本文件做交集、并集和差集運算時,這個例子會相當有幫助。假定 a和 b 是已經(jīng)進行了唯一性處理的文本文件。這會很快,而且可以處理任意大小的文件,總計可達數(shù)千兆字節(jié)。(Sort不受內(nèi)存限制,不過如果 /tmp 放在一個很小的根分區(qū)的話,你可能需要使用 -T 選項。)也可參見上面關(guān)于LC_ALL的注解和 -u 選項(參見下面例子更清晰)。

  sh 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 的差集

  使用 grep 。 * 來可視化查看一個目錄中的所有文件的所有內(nèi)容,例如,對于放滿配置文件的目錄: /sys, /proc, /etc。

  對某個文本文件的第三列中所有數(shù)據(jù)進行求和(該例子可能比同等功能的Python要快3倍,而且代碼也少于其3倍):

  awk ’{ x += $3 } END { print x }‘ myfile

  如果想要查看某個文件樹的大小/日期,該例子就像一個遞歸ls -l,但是比ls -lR要更容易讀懂:

  find 。-type f -ls

  只要可以,請使用 xargs 或 parallel。注意,你可以控制每行(-L)執(zhí)行多少個項目,以及并行執(zhí)行(-P)。如果你不確定它是否會做正確的事情,可以首先使用 xargs echo。同時,使用 -I{} 也很方便。樣例:

  find 。-name ’*.py‘| xargs grep some_function

  cat hosts | xargs -I{} ssh root@{} hostname

  比如說,你有一個文本文件,如 Web 服務器的日志,在某些行中出現(xiàn)了某個特定的值,如 URL 中出現(xiàn)的 acct_id 參數(shù)。如果你想要統(tǒng)計有多少個 acct_id 的請求:

  cat access.log | egrep -o ’acct_id=[0-9]+‘| cut -d=-f2 | sort | uniq -c | sort-rn

  運行該函數(shù)來獲得來自本文的隨機提示(解析Markdown并從中提取某個項目):

  function taocl(){

  curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md |

  pandoc -f markdown -t html |

  xmlstarlet fo --html --dropdtd |

  xmlstarlet sel -t -v ”(html/body/ul/li[count(p)》0])[$RANDOM mod last()+1]“|

  xmlstarlet unesc | fmt -80

  }

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄