Eu criei este pequeno arquivo de texto
/* one line comment */
some
multiple
code
here
/*****
multiple
line
comment
*****/
some code http://somelink
some code // some one line comment
Para este pequeno arquivo de teste, este comando funciona para remover todos os comentários que você mencionou
cat comments.txt | sed -n '/^\/\*.*\*\//!p' | sed -n '/ \/\/.*/!p' | sed 's|/\*|\n&|g;s|*/|&\n|g' | sed '/\/\*/,/*\//d'
Este comando está fazendo isso:
-
sed -n '/^\/\*.*\*\//!p': remove todos os comentários de uma linha, como/* one line comment */, do arquivo de teste -
sed -n '/ \/\/.*/!p': remove todos os comentários de uma linha, como// some one line comment, mas mantémhttp://links. Isso pode ser feito por causa do espaço em branco nesta parte/ \/\/. Eu acho que você pode mudar isso em/\s\/\/ -
sed 's|/\*|\n&|g;s|*/|&\n|g' | sed '/\/\*/,/*\//d': remove todas as linhas de comentários múltiplos, como na amostra, mas mantém o código.