1

私は初めてでsed、それを使用してすべての「;」を削除することはできません C++ ファイルのコメント内の文字、つまり文字列 "//" で始まる行または文字列を含む行 (既に "/* ... */" コメントを "// ..." コメントに変換しています)。

例えば ​​:

// lorem; ipsum ; test
int a; // 1 ; 2 ; 3 ;

そして、私はしたい:

// lorem ipsum  test
int a; // 1  2  3 

私のC++ファイルのコメントについて。

********* 編集 *********

これは、2 つのステップで SED を使用したソリューションです。AWK を使用したソリューションも回答で利用できます。

  1. すべてのコメントを改行してください:sed 's/\/\//\n\/\//g'
  2. 削除する ';' "//" で始まる行のみ:sed '/^\/\// s/;//g'
4

1 に答える 1

0

AWKでは簡単です。ファイルr.awkを作成します。

function process(s) {
    gsub(";", "", s)
    return s
}

{
    sep = "//"; ns=length(sep)
    m = match($0, sep)
    if (!m) {print; next}

    body = substr($0,    1, m-1)
    cmnt = substr($0, m+ns     )

    print body sep process(cmnt)
}

使用法:

awk -f r.awk input.file
于 2016-07-29T10:30:17.857 に答える