Bashスクリプトから複数行のコメントを削除するには?

Bashスクリプトから複数行のコメントを削除するには?

Luaファイルからコメントを削除する必要があるbashスクリプトを作成しています。形式は次のとおりです。

--like this

foo="bar" --or like this

--[[ or like this ]]

--[[
    or
    like
    this
]]

1行コメントを削除するために使用できることを知っていますが、sed 's/--.*$//' ${my_file}複数行コメントを解決する方法は何ですか?

ありがとうございます!

ベストアンサー1

いいえ、これは正規表現エンジンの仕事ではありません。たとえば、合法的にまたは文字列を持つことができます--]]文字列はで終わりますが、"で終わりません\"

プログラミング言語のアイデアは正規表現に簡単にマッピングされません(場合によってはまったくそうではありませんが、これは構文理論の練習です)。

私自身は言語理論家ではありませんが、Luaには正規文法が定義されていないため、正規表現で構文解析できない可能性があると思います。

これを達成する方法は語彙アナライザ、ファイルを文字ごとに読み、次のように分割します。トークン"(たとえば、aが表示されたときに開始し、unescapedが表示されたときに終了する文字列トークンです"。)すべてのトークンを発行します。いいえコメント。

おすすめ記事