我在ASM中有一个包含大约300个源代码的目录。 所以,我需要删除此代码的注释(“;”)。
到目前为止,我删除了3个文件的注释,其中每个文件有100行代码。
有人知道一个可以帮助我的脚本吗?
答案 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。