Linux grep 找出此字串在檔案的第幾行

若一個檔案很大,想要知道處理進度,就會需要知道目前這個字串於此檔案的何處~

所以可以使用 grep 找出目前處理到第幾行,在用 wc -l 看檔案的總行數,就可以知道目前處理到幾%的進度

閱讀全文〈Linux grep 找出此字串在檔案的第幾行〉

Python 判斷檔案的語系編碼 UTF-8、Big5

Python3 要開啟、讀取檔案時,若不是 UTF-8,會需要輸入檔案的語系編碼,Python 會自動都轉換成 UTF-8 做操作。

如下範例:(現在會遇到 Big5 的,大多數都是 Windows 的 CSV)

with open(filename, encoding='Big5') as csvline:
    rows = csv.reader(csvline, delimiter=',')

但是有些來源是 Big5、有些是 UTF-8,就需要偵測語系編碼,要怎麼做呢?

閱讀全文〈Python 判斷檔案的語系編碼 UTF-8、Big5〉

快速找出 Linux 佔硬碟空間的檔案

Linux 看到硬碟空間吃緊,df -h 可以看到使用率,但是硬碟容量快速減少,要快速找出到底哪邊大量使用空間,可以依照下述步驟:

  1. cd / # 切到根目錄,或者到更深入一點的資料夾
  2. du -h -d1 # 先看哪個資料夾吃最兇,再進去細部查
  3. cd max-size-directory # 切到使用容量最兇的地方
  4. du -h -d1 # 一層一層撈,持續重複 2 ~4
  5. du -sck * | sort -nr | less # 上述大方向抓到,要再查看細部含檔案的時候,由最上面開始看
  6. realpath filename # 如果有找到檔案,抓取真實路徑後,再來查看是怎麼發生的

Linux 使用 SED 對檔案 最前、最後 增加一行資料

Linux 想要在檔案的最前面和最後面增加一行或多行的資料,可以怎麼做呢?

在檔案最後增加資料很簡單:

  • echo 'last line data' >> filename # 單一檔案
  • for f in .txt ; do echo 'last line data' >> $f; done # 目錄下所有 txt 檔 最後都增加一行

閱讀全文〈Linux 使用 SED 對檔案 最前、最後 增加一行資料〉