2011-11-22 64 views
11

我看到sed的例子,但不管我怎麼寫它都不會刪除我的第一行。其實,我沒有更多的測試,它不會刪除我的第一線要麼,所以我肯定做錯了什麼:Bash工作代碼從文件中刪除第一行或最後一行

sed '1d' filename 

或最後一行

sed '$d' file name 

我想讓修改發生在同一個文件中,並且不需要另一個輸出文件。 所以,請刪除我的文件中最後一行的正確方法是什麼?

+0

[猛砸可能重複 - 刪除最後一行從一個文件](http://stackoverflow.com/questions/4881930/bash-remove-the-last-line-f rom-a-file) –

回答

14

sed -i '$ d' filename-i標誌編輯文件到位。

+1

這會刪除最後一行。要刪除第一行,請使用'sed -i'1,1d'filename'。 – skolima

4

可以使用--in-place-i)開關:

sed -i '$d' filename 

來源:man sed

3

如果您的sed支持就地編輯,則它是sed -e '1d' -e '$d' -i filename

2

給出了此答案,因爲sed未被標記。

head -`wc -l test2.cc | awk '{print ($1-1)}'` test2.cc 
4

在這裏,你去! 刪除第一行

sed '1,1d' file1 >> file1.out 

刪除最後一行/線路

sed '$d' file2 >> file2.out 
+0

很好的答案。我幾乎連接如下:'sed「1,1d; $ d」file1> file2' –

0

嘗試cat file1 | sed "1,1d; $d" > file2

3

因爲沒有人給它任何的愛:

ed filename <<'END' 
1d 
$d 
w 
q 
END