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

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

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

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

  處理文件和數(shù)據(jù)

  要在當(dāng)前目錄中按名稱定位文件,find 。 -iname ’*something*‘(或者相類似的)。要按名稱查找任何地方的文件,使用 locate something(但請記住,updatedb 可能還沒有索引最近創(chuàng)建的文件)。

  對于源代碼或數(shù)據(jù)文件進(jìn)行的常規(guī)搜索(要比 grep -r 更高級),使用 ag。

  要將 HTML 轉(zhuǎn)成文本:lynx -dump -stdin。

  對于 Markdown、HTML,以及各種類型的文檔轉(zhuǎn)換,可以試試 pandoc。

  如果你必須處理 XML,xmlstarlet 雖然有點老舊,但是很好用。

  對于 JSON,使用jq。

  對于 Excel 或 CSV 文件,csvkit 提供了 in2csv,csvcut,csvjoin,csvgrep 等工具。

  對于亞馬遜 S3 ,s3cmd 會很方便,而 s4cmd 則更快速。亞馬遜的 aws 則是其它 AWS 相關(guān)任務(wù)的必備。

  掌握 sort 和 uniq,包括 uniq 的 -u 和 -d 選項——參見下面的單行程序。

  掌握 cut,paste 和 join,它們用于處理文本文件。很多人會使用 cut,但常常忘了 join。

  了解 tee,它會將 stdin 同時復(fù)制到一個文件和 stdout,如 ls -al | tee file.txt。

  知道 locale 會以微妙的方式對命令行工具產(chǎn)生大量的影響,包括排序的順序(整理)以及性能。大多數(shù)安裝好的 Linux 會設(shè)置 LANG 或其它 locale 環(huán)境變量為本地設(shè)置,比如像 US English。但是,你要明白,如果改變了本地環(huán)境,那么排序也將改變。而且 i18n 過程會讓排序或其它命令的運行慢好多倍。在某些情形中(如像下面那樣的設(shè)置操作或唯一性操作),你可以安全地整個忽略緩慢的 i18n 過程,然后使用傳統(tǒng)的基于字節(jié)的排序順序 export LC_ALL=C。

  了解基本的改動數(shù)據(jù)的 awk 和 sed 技能。例如,計算某個文本文件第三列所有數(shù)字的和:awk ’{ x += $3 } END { print x }‘。這可能比 Python 的同等操作要快3倍,而且要短3倍。

  在一個或多個文件中,替換所有出現(xiàn)在特定地方的某個字符串:

  perl -pi.bak -e ’s/old-string/new-string/g‘my-files-*.txt

  要立即根據(jù)某個模式對大量文件重命名,使用 rename。對于復(fù)雜的重命名,repren 可以幫助你達(dá)成。

  # 恢復(fù)備份文件 foo.bak -》 foo:

  rename ’s/\.bak$//‘*.bak

  # 完整的文件名、目錄名 foo -》 bar:

  repren --full --preserve-case--from foo --to bar 。

  使用 shuf 來從某個文件中打亂或隨機(jī)選擇行。

  了解 sort 的選項。知道這些鍵是怎么工作的(-t和-k)。特別是,注意你需要寫-k1,1來只通過第一個字段排序;-k1意味著根據(jù)整行排序。

  穩(wěn)定排序(sort -s)會很有用。例如,要首先按字段2排序,然后再按字段1排序,你可以使用sort -k1,1 | sort -s -k2,2

  如果你曾經(jīng)需要在 Bash 命令行中寫一個水平制表符(如,用于 -t 參數(shù)的排序),按ctrl-v [Tab],或者寫$’\t‘(后面的更好,因為你可以復(fù)制/粘貼)。

  對源代碼進(jìn)行補(bǔ)丁的標(biāo)準(zhǔn)工具是 diff 和 patch。 用 diffstat 來統(tǒng)計 diff 情況。注意 diff -r可以用于整個目錄,所以可以用 diff -r tree1 tree2 | diffstat 來統(tǒng)計(兩個目錄的)差異。

  對于二進(jìn)制文件,使用 hd 進(jìn)行簡單十六進(jìn)制轉(zhuǎn)儲,以及 bvi 用于二進(jìn)制編輯。

  還是用于二進(jìn)制文件,strings(加上 grep 等)可以讓你找出一點文本。

  對于二進(jìn)制文件的差異(delta 壓縮),可以使用 xdelta3。

  要轉(zhuǎn)換文本編碼,試試 iconv 吧,或者對于更高級的用途使用 uconv;它支持一些高級的 Unicode 的東西。例如,這個命令可以轉(zhuǎn)換為小寫并移除所有重音符號(通過擴(kuò)展和丟棄):

  uconv -f utf-8-t utf-8-x ’::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] 》; ::Any-NFC; ‘《 input.txt 》 output.txt

  要將文件分割成幾個部分,來看看 split(按大小分割)和 csplit(按格式分割)吧。

  使用 zless,zmore,zcat 和 zgrep 來操作壓縮文件。

標(biāo)簽 命令行

發(fā)表評論

0

沒有更多評論了

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

立即評論

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

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

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

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