尝试注释源文件

问题描述

我正在尝试注释源代码行,以便类似 LANG ='ENG'; 变成 // LANG ='ENG';

文件中有一千多行,“ ENG”不是唯一的,而是整行。 我放弃了对通配符的疯狂梳理,只是尝试了整个现有的“按原样”行,但没有任何乐趣。 像(注释壳)之类的东西-

enter code here

#!/bin/bash
#if [  -n "$5" ] ; then
#if [ "$5" == "ENG" ] ; then

sed -i "s/'         LANG                                   = '\''ENG'\''/\/\/'       LANG'                                  
=  '\''ENG'\''/" vc.pas > vc.out

#fi
#fi

因此,它减少为一行。不管我尝试什么,都没有喜悦。 TIA! 豪伊

解决方法

使用GNU sed,使用

<html>

<head>
</head>
<br>
<br>

<body>
  <table class="maintable">
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
  </table>
  <table class="maintable">
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
  </table>
  <table class="maintable">
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    <br>
    <table class="tablestyle">
      <th colspan="4"></th>
      <col span="1" class="wide">
      <tr>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
        <th col span="1" class="thin"></th>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
  </table>
</body>

</html>

其中

  • sed -i "s,.*LANG *= *'ENG';.*,//&," vc.pas -启用内联文件修改
  • -i-替换命令
  • s-分隔符
  • ,-包含.*LANG *= *'ENG';.*的文本,在LANG = 'ENG';周围有任意空格
  • =-将匹配的行替换为//&和行本身
,

这对我有用,将所有空格传递到输出:

$ echo "LANG='ENG';" | sed "s#^\(\s*LANG\s*=\s*'ENG'\s*;\)#// \1#"
// LANG='ENG';
$ echo "   LANG  = 'ENG'  ;   " | sed "s#^\(\s*LANG\s*=\s*'ENG'\s*;\)#// \1#"
//    LANG  = 'ENG'  ;   

从技术上讲,它需要在双引号引起来的字符串中使用双反斜杠,但是由于这些序列都不构成有效的转义序列,因此bash不在乎。