Linux 使用 sed 整行(列)刪除

垂直刪除有 Vim, cut 和 awk 可以用, 橫列刪除的倒是比較少用, 可以使用 sed 達成.

範例實做(sed)

  • sed -e '12d' xxx # 將第 12 行清掉
  • sed -e '1,5d' xxx # 將第 1 ~ 5 行清掉
  • sed -e '1,5d' -e 's/test/check/' # 第 1 ~ 5 行清掉, 並將 test 取代成 check
  • sed -i '3d' xxx # 將第三行移除, 並寫入檔案

相關網頁

感謝 jumbler 提供 awk 的方法

  • awk '!(NR>=1 && NR<=5){print $0}' xxx # 將第 1 ~ 5 行清掉

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

Linux 使用 sed 整行(列)刪除 有 8 則回應

  1. zclin 說道:

    vim的作法:
    :12 d # 將第 12 行清掉
    :1,5 d # 將第 1 ~ 5 行清掉

  2. Tsung 說道:

    嗯嗯, 我主要是要找 cli 的直接大量執行工具~ 要砍多個檔案用~
    很感謝您提供的資訊~ 🙂

  3. jumbler 說道:

    刪去 第 12 行
    awk 'NR!= 12 {print $0}' xxx > yyy
    刪去 1~5 行
    awk ' !(NR>=1 && NR

  4. Tsung 說道:

    大小於的符號, 能用 全形留嗎?

  5. jumbler 說道:

    刪去 1~5 行
    awk ' !(NR>=1 && NR<=5){print $0}' xxx > yyy

  6. Tsung 說道:

    原來可以這樣子用, 感恩..Orz..

  7. xx 說道:

    標題下刪除行(列)這樣到底是行還是列?
    行行列列寫得這樣亂七八糟,你何不乾脆用英文的row和column算了?
    被你搞到不知道到底sed是刪除直的還是橫的。
    誤人子弟。

發表迴響