2012-10-24 140 views
0

我使用sed命令刪除前兩行,但是當我將內容重定向到文件時出現行數。我不知道如何刪除它。使用sed並刪除最後一行

我執行:

sed '7,9d' mi_fichero.txt 

,其結果是:

(我寫的最後幾行)

/XTENT/D3/REPOSITORY/20120305/2201/65601/84/1330951636844_D3_448987414829688495_.indd.gz 
/XTENT/D3/REPOSITORY/20120308/2201/65601/22/1331198783835_D3_3411473776849856760_.indd.gz 
/XTENT/D3/REPOSITORY/20120308/2201/65601/158/1331220874606_D3_2742969984589497048_.indd.gz 
/XTENT/D3/REPOSITORY/20120313/2201/65601/0/1331626743284_D3_7551629114585379089_.indd.gz 
/XTENT/D3/REPOSITORY/20120309/2201/65601/92/1331295878839_D3_4724445611762228808_.indd.gz 
(60 rows) 

我想刪除行(60行),任何人都可以幫我 ?

謝謝:)

+0

什麼是你的Linux發行版? –

+0

紅帽4.1.2-46 – jask

回答

4

這可能會爲你工作(GNU SED):

sed -i '7,9d;$d' file 
+0

對不起!完美的作品。我很困惑,因爲我沒有看到「-i」參數:)非常感謝! – jask

0

已經有一個正確的答案,這是不sed的,還有一個備用的方式來做到這一點使用AWK

awk -v nl=$(wc -l < mi_fichero.txt) 'NR!=7 && NR!=9 && NR!=nl {print $0}' mi_fichero.txt