我需要在linux下使用sed刪除C程序中的註釋行,假設每個註釋行包含開始和結束標記,而前後沒有任何其他語句。SED刪除C程序註釋
例如,下面的代碼:
/* a comment line in a C program */
printf("It is /* NOT a comment line */\n");
x = 5; /* This is an assignment, not a comment line */
[TAB][SPACE] /* another empty comment line here */
/* another weird line, but not a comment line */ y = 0;
成爲
printf("It is /* NOT a comment line */\n");
x = 5; /* This is an assignment, not a comment line */
/* another weird line, but not a comment line */ y = 0;
我知道,這正則表達式
^\s?\/\*.*\*\/$
,我需要刪除線相匹配。但是,下面的命令:
sed -i -e 's/^\s?\/\*.*\*\/$//g' filename
沒有辦法。
我不太確定我在做什麼錯...
感謝您的幫助。
您應該在您的示例中包含'/ *第一條評論* /非評論/ *第二條評論* /',因爲sed腳本難以正確處理。你現有的答案都不能正確處理,他們都認爲這是一條評論線。 –
https://unix.stackexchange.com/questions/297346/how-can-i-delete-all-characters-falling-under-including – bishop