2014-01-13 99 views
0

是否有任何命令或unix中刪除特定行的方法?Unix命令從所有文件中刪除特定行所有文件

例如: 我有一些300個.c文件,其中文件頭有作者姓名。我需要從所有文件中刪除這一行。我期待在onehot中做到這一點。

如果有任何命令或方式請幫助我。

謝謝..

+1

您可以使用Perl這樣做,但請嘗試* *的東西或要求這樣做之前,一個粗略的搜索。 –

回答

0

使用此命令

find -iname "*.c" -exec sed -i '/author/'d {} \; 

首先找到命令會找到所有的c文件,然後sed將刪除文件中的作者行。

0
perl -i.bak -pne "s/^whatever it is your line to delete$//" files 

將創建文件不帶擴展名爲.bak的行。嘗試在一個文件,如果你有足夠的信心來覆蓋所有的文件,你可以做到這一點:

perl -i -pne "s/^whatever it is your line to delete$//" files 

這將覆蓋原來的文件。其它類似的選項是:

perl -i -ne "print if !/^whatever it is your line to delete$/" files 

perl -i -pne "next if /^whatever it is your line to delete$/" files 

確保你定義從「^」(行begining)以「$」(行尾)線,否則你可能會刪除有部分匹配類似的思路。

0

試試這個,

grep -lr "<Authorname keyword>" *.c|xargs sed -i '0,/<Authorname>/d' 

grep的 - 名單匹配關鍵字「位置的所有C文件」,然後用sed - 刪除關鍵字

通過網站sed examples去匹配一號線

爲你將來的引用

相關問題