String cygwin中的文件名操作

String cygwin中的文件名操作,string,unix,cygwin,filenames,String,Unix,Cygwin,Filenames,我正在Windows7上运行cygwin。我正在使用信号处理工具,基本上执行校准。我有大约1200个输入文件。每个文件的格式如下所示 输入文件\uu format=“AC\uxxxxxx.abc” 第一步需要为所有输入文件建立某种索引,这是通过工具的buildindex命令完成的,现在每个文件都有6个与之关联的索引。因此,现在我有大约1200*6=7200个索引文件。索引的形式如下所示 索引\u format=“AC\uxxxxxx.abc.1”, “AC_uxxxxxx.abc.2”, “AC

我正在Windows7上运行cygwin。我正在使用信号处理工具,基本上执行校准。我有大约1200个输入文件。每个文件的格式如下所示

输入文件\uu format=“AC\uxxxxxx.abc”

第一步需要为所有输入文件建立某种索引,这是通过工具的
buildindex
命令完成的,现在每个文件都有6个与之关联的索引。因此,现在我有大约1200*6=7200个索引文件。索引的形式如下所示

索引\u format=“AC\uxxxxxx.abc.1”,
“AC_uxxxxxx.abc.2”,
“AC_uxxxxxx.abc.3”,
“AC_uxxxxxx.abc.4”,
“AC_uxxxxxx.abc.rev.1”,
“AC_uxxxxxx.abc.rev.1”

现在,我需要使用这些索引来执行对齐。每个文件的所有6个索引都被一起调用,最后的操作如下所示

信号处理工具..\index路径\AC_XXXXXX.abc..\Query文件

其中,AC_XXXXXX.abc是与该特定索引文件关联的索引。所有6个索引文件都用**AC_ux.XXXXXX.abc*调用

我的问题是,我只需要在最后的操作中使用索引文件名的前14个字符

当我使用下面的代码时,不会执行对齐。
用于索引中的文件/*;do./tool$file | cut-b1-14项目/查询|文件;完成


我非常感谢你的帮助

首先,请记住,$file将始终以“index/”开头,因此修剪前14个字符将始终在开头包含该文件夹名称

要使用变量中的前14个字符,请使用
${file:0:14}
,其中0是起始字符串索引,14是所需子字符串的长度


或者,如果要使用cut,则需要在子shell中运行它:
for file in index/*;do./tool$(echo$文件| cut-c1-14)项目/查询文件;完成
I将
cut
的arg改为-c表示字符,而不是字节

假设样本行中未执行的
/tool
是信号处理工具,看起来您正在通过
cut
传输工具的输出——您没有剪切文件名,我不是在编辑文件名,而是在编辑输出。我应该如何解决这个问题?谢谢,我使用了
${file:0:14}
选项,我认为它可以解决这个问题!