如何解决尝试注释源文件
我正在尝试注释源代码行,以便类似 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不在乎。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。