2014-10-31 42 views

回答

1

您可以使用ed,標準編輯:

ed -s file.csv < <(printf '%s\n' '2,10d' 'wq') 

< <(printf ...)將推動ed做到以下幾點:

  • 使用命令刪除範圍2-10中的行2,10d
  • 使用wq保存(w)並退出(退出q)。

您的ed版本可能會在wq上投訴;在這種情況下給它2個獨立的命令(w然後q)像這樣:

ed -s file.csv < <(printf '%s\n' '2,10d' 'w' 'q') 

否則,強制性sed方式:

sed -i '2,10d' file.csv 

這就像ed方式,不同之處sed並不是一個真正的文件編輯器:它使用(在窗簾後面)一個臨時文件 - 所以它在技術上不能滿足您的要求。

+1

在我的Debian系統上,如果我像你那樣運行'ed'並檢查它是如何處理的,我會在'/ tmp /'中創建一個臨時文件來執行編輯操作。 – Louis 2014-11-01 00:36:27

+0

@Louis,true,編輯_do_使用臨時文件':-D'。你是說我在這個答案中撒謊? '';-)。 – 2014-11-01 00:41:18

+2

嗯,我只是不想讓親愛的'sed'看起來不像'ed'。 :) – Louis 2014-11-01 00:43:06

相關問題