我一直在寻找一种方法来增加我的长字符串中的数字:
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite001.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite002.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite003.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite004.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Concatenate...", " title=TL open image1=[test_stabilite001.nd2 - test_stabilite001.nd2 (series 01) - C=0] image2=[test_stabilite002.nd2 - test_stabilite002.nd2 (series 01) - C=0] image3=[test_stabilite003.nd2 - test_stabilite003.nd2 (series 01) - C=0] image4=[test_stabilite004.nd2 - test_stabilite004.nd2 (series 01) - C=0] image5=[-- None --]");
run("Concatenate...", " title=GFP open image1=[test_stabilite001.nd2 - test_stabilite001.nd2 (series 01) - C=1] image2=[test_stabilite002.nd2 - test_stabilite002.nd2 (series 01) - C=1] image3=[test_stabilite003.nd2 - test_stabilite003.nd2 (series 01) - C=1] image4=[test_stabilite004.nd2 - test_stabilite004.nd2 (series 01) - C=1] image5=[-- None --]");
selectWindow("TL");
saveAs("Tiff", "/Users/m-a/Desktop/Test/Test_Serie1_TL.tif");
selectWindow("GFP");
saveAs("Tiff", "/Users/m-a/Desktop/Test/Test_Serie1_GFP.tif");
selectWindow("Test_Serie1_TL.tif");
close();
selectWindow("Test_Serie1_GFP.tif");
close();
为了节省时间,我想找到一种简单的方法,将“series_1”、“series 01”和“Serie1”替换为“series_n+1”、“series 0n+1”和“Serien+1”约 50 次。我找了一段时间,但找不到任何可以帮助我的东西。
如能得到帮助将不胜感激:)
答案1
您可以在 vim 中使用以下命令执行此操作:
g/[Ss]erie\(s[ _]\|\)\d*/ normal gn^An^An^An^A
要使用它,请在 vim 中打开文本示例,然后按ESC,然后:,然后按上面的行。但是,每当^A
需要输入时,请输入Control- v Control- a,这将插入文字^A
符号。它应该只显示为^A
。
这将找到示例中的所有模式,并将其中的数字加一。它的工作原理如下:
- ESC :将进入 vim 中的命令模式。
- 执行的命令是
g
命令。它将在与某些正则表达式匹配的所有行上运行命令。 [Ss]erie\(s[ _]\|\)\d*
是应匹配您请求的所有模式的正则表达式。即serie
以大写字母或非大写字母开头s
,后跟s
一个空格或_
,或者后跟任何内容。然后跟一个数字。- 该命令每一行执行的命令
g
实际上将是8条命令:normal
只是一个关键字,告诉 vim 后面跟着的不是命令行模式命令,但是普通的模式命令。也就是您在 vim 中正常编辑时通常输入的内容。gn
将光标移动到找到最后一个匹配项的位置- Control-a增加数字(当您手动将光标移动到该位置并按下它时这也有效)。
n
移至下一场比赛。此操作重复 3 次。
这需要 vim 7.4 及以上版本才能工作。另外,如果一行中出现超过 4 个模式,则需要进行调整。
我应该指出,使用脚本或编辑器魔法来更改程序代码是一种相当愚蠢的工作方式。改进程序以适当的方式以编程方式生成字符串会更好。
注意:您的代码如下所示图像如果是这样的话,这里有一份文件可以帮助你取得更好的成绩:http://www.sussex.ac.uk/gdsc/intranet/pdfs/ImageJBatchProcessing.pdf