如何删除ASM代码的注释

时间:2014-05-27 16:20:46

标签: linux

我在ASM中有一个包含大约300个源代码的目录。 所以,我需要删除此代码的注释(“;”)。

到目前为止,我删除了3个文件的注释,其中每个文件有100行代码。

有人知道一个可以帮助我的脚本吗?

2 个答案:

答案 0 :(得分:1)

Sed是你的朋友:

find <asm_dir> -type f | xargs sed -i -e '/^;/d' -e 's/^\([^;]*\);.*$/\1/'

第一个表达式删除以注释字符;开头的行。第二个表达式删除内联注释(从;到行尾)。

答案 1 :(得分:1)

你可以简单地在例如Vim或Emacs。我将在这里讨论Vim。

假设您在一个目录中包含所有.asm文件,请转到shell并执行类似

的操作
cd /path/to/my/files
gvim *.asm

这将打开所有.asm文件,以便在gvim(图形vim)中进行编辑。如果你不熟悉Vim它是一个很棒的文本编辑器,我们将记录一个宏来完成我们的工作。只做我说的话,否则你会搞砸:)为了安全起见,你应该备份你的文件,以防你输入错误并删除超过你想要的内容。

输入这些字符(或按键盘上的相应内容按照&lt;&gt;中的指定):

qa:g/^\s*;/d<Enter>:n<Enter>q

这将开始录制宏[q],将其存储在[a]中,执行第一个文件中以可选空格开头,后跟分号[:g/^\s*;/d<Enter>]的每一行的全局删除,移至下一个文件[:n<Enter>]并保存宏[q]。你现在要做的就是在你有文件的情况下多次运行这个宏。您可以通过在目录中使用保存的文件运行ls *.asm | wc -l来获得此结果,或者您可以简单地过冲它并输入更大的数字,Vim将停在最后一个文件上并通知您没有其他文件可供编辑。因此,通过过冲示例,您可以输入

1000@a

宏将开始遍历所有文件。这可能需要一些时间,所以请耐心等待。一旦完成,我们仍然没有保存我们的文件,所以我们可以在提交之前检查结果。如果文件看起来没问题,你可以查看几个文件,如果是,则输入

:wa<Enter>

现在保存所有文件,您可以使用ZQ:q<Enter>退出Vim。