我正在使用matlab将数字作为eps文件写入LaTeX,使用:
print( '-depsc', 'filename.eps');
我将这些eps文件保留在版本控制中。由于我一次生成大量数据,但只更改其中的一个或两个,通常是特定eps文件中的唯一更改是:
-%%CreationDate: 06/29/2011 17:52:57
+%%CreationDate: 06/30/2011 19:18:03
这不是有价值的信息。有没有办法阻止matlab编写CreationDate?
鼓励肮脏的解决方案......
答案 0 :(得分:4)
一种解决方案是完全删除该行,并依赖文件系统来跟踪创建/修改日期。这可以使用常见的shell工具以多种方式完成:
# sed
sed -i file.eps '/^%%CreationDate: /d'
或
# grep
grep -v '^%%CreationDate: ' file.eps > tmp && mv tmp file.eps
如果您使用的是Windows机器,MATLAB应该包含一个Perl解释器:
# perl
perl -i -ne 'print if not /^%%CreationDate: /' file.eps
从MATLAB内部,您可以执行以下操作来调用单行Perl程序:
%# construct command, arguments and input filename (with quotes to escape spaces)
cmd = ['"' fullfile(matlabroot, 'sys\perl\win32\bin\perl.exe') '"'];
args = ' -i.bak -ne "print if not /^%%CreationDate: /" ';
fname = ['"' fullfile(pwd,'file.eps') '"'];
%# execute command
system([cmd args fname])