2010-11-17 91 views

回答

2
find -name '*.c' 

用這個來驗證你正在處理正確的文件。

find -name '*.c' | xargs sed -i '0,/^*\/$/d' 

這將刪除最多隻包含終止符的第一行。

+0

非常感謝。這非常有幫助 – 2010-11-17 03:42:28

1

這將刪除開頭爲/*徹底的*/的第一場比賽(必須是註釋終止,不管它的線路是否有多餘的空間或不啓動):

sed '/^\/\*/,/\*\//d' < inputfile 
+0

OP顯然只想刪除第一個註釋塊。你的答案將刪除所有這些。沒有必要使用重定向,'sed'會接受一個文件名作爲參數。 – 2010-11-17 04:00:32

1

一(醜陋的)方式是使用C預處理器cpp。例如: -

$ echo "AAA ; /* hahaha */ " | cpp - 
# 1 "<stdin>" 
# 1 "<built-in>" 
# 1 "<command-line>" 
# 1 "<stdin>" 
AAA ; 

當輸出在語義上是完全一樣的你的輸入,cpp將取代所有的預處理指令,這可能不是你想要的。另一方面,它是非常好擅長它。