1. 程式人生 > >sed和shell:刪除檔案的第n行和倒數第n行

sed和shell:刪除檔案的第n行和倒數第n行

刪除第三行,並把結果送至檔案newfile

sed '3d' file>newfile 

刪除倒數第三行,把結果送至檔案newfile

tac file|sed '3d'|tac >newfile

刪除倒數第三行,bash shell版本

linenum=`cat file | wc -l`
linenum_last3=`expr $linenum - 3`
sed -n ''"$linenum_last3"'d' file

註釋:sed使用變數
是通過單引號雙引號。其實還有很多其它方法。

'"$variable '"

隨語:
shell grep sed awk perl
- Q:學了perl,還有必要學grep sed awk嗎?有人說學這麼多,不統一,浪費時間學太多工具。
- 個人理解:
perl語言的實現,本來就很雜。各個工具有自己擅長的地方,而且有很強的共性,學起來不費事,一通百通,多學一門語言對熟悉的語言也有好處。總之,利遠遠大於弊。
- 總結各個工具特點(僅適合自己):
grep查詢關鍵詞;
awk用做列模式整理文字;
sed 替換修改文字;
perl是shell/grep/sed/awk的粘合劑。perl語言強大。一些小操作,還是用grep/sed/awk處理,簡單。