循环生成文件名

奥扎尔卡

免责声明:我正在使用Mac OSX。bash脚本与需要处理的文件位于不同的目录中。从这里开始我的奋斗……

帮助1:我有多个文件,每个文件都存放在父目录的子目录中,需要将其作为我的生物信息学工具的输入文件。我发现for循环对此适用。

for file in ~/Desktop/parent\ folder/*/*.txt;
do exTool INPUT= ${file##*/} OUTPUT= ${file%.txt}_exd.txt 

我希望输入文件(通过剪切附加到$ file的文件夹列表),然后输出文件,删除“ .txt”并添加_exd.txt。我得到的错误是输入携带文件夹列表,特别是空格“ parent \ folder”引起错误的输入信息。

帮助2:作为第一种情况的扩展,如果要将文件输出到与输入相同的子目录中,是否必须添加特殊命令?

帮助3:如果我在每个子目录(input_1.txt和input_2.txt)中都有2个文件,我想将两个文件都输入到一个命令中。如果嵌套在for循环中,脚本将如何显示?

for file in ~/Desktop/parent\ folder/*/*.txt;
do bioTool INPUT1= ${file%.txt}_1.txt INPUT2= ${file%.txt}_2.txt OUTPUT= ${file%%.*}

对于输出,请注意,我只需要基本文件名,因为该工具将在名称末尾附加一个数字,以表示第一个和第二个文件输出以及扩展名。由于某种原因,我觉得for循环中“ in”之后的部分执行不正确。将脚本放置在与文件不同的目录中,这是一个令人讨厌的解决方案。

任何帮助将不胜感激,支持,喜欢,接受,喜欢。非常感谢您的帮助。

豪克

帮助1

由于空白,您需要引用以下内容:

INPUT= "${file##*/}" OUTPUT= "${file%.txt}"_exd.txt

但是,INPUT=文件名和文件名之间有一个空格,这似乎有些奇怪

帮助3

如果您有文件,input_1.txt${file%.txt}_1.txt成为input_1_1.txt

我将匹配确切的文件名:

for file in ~/Desktop/parent\ folder/*/input_1.txt; do
    bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}"
done

帮助4

那根本没有壳的东西。

更改为子目录

for file in ~/Desktop/parent\ folder/*/input_1.txt; do
    subdir="${file%/*}"
    pushd "$subdir" &>/dev/null
    file="${file##*/}"
    bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}"
    popd &>/dev/null
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从循环生成文件

来自分类Dev

为与POSIXct相关的循环生成文件分配名称

来自分类Dev

从SHA哈希生成文件名

来自分类Dev

下载前生成文件名

来自分类Dev

具有多个主要功能的循环生成文件

来自分类Dev

从url文本自动生成文件名

来自分类Dev

如何在python中动态生成文件名?

来自分类Dev

循环生成变量名

来自分类Dev

从zsh中的变量生成文件名而不会生成子shell

来自分类Dev

如何生成文件名列表?

来自分类Dev

PHPStorm:在自定义文件模板上生成文件名

来自分类Dev

PHPStorm:在自定义文件模板上生成文件名

来自分类Dev

文件名中具有可变部分的生成文件的规则

来自分类Dev

Spring Batch FlatFileItemWriter-如何使用stepExecution.jobId生成文件名

来自分类Dev

Spring Batch FlatFileItemWriter-如何使用stepExecution.jobId生成文件名

来自分类Dev

如何为gnome屏幕截图自动生成文件名?

来自分类Dev

循环生成JSON

来自分类Dev

SCSS for循环生成

来自分类Dev

Excel VBA保存到特定文件夹(使用当前代码生成文件名)

来自分类Dev

根据文件名生成文件夹并将文件移动到生成的文件夹中的子文件夹

来自分类Dev

Bash无法自动完成文件名

来自分类Dev

带文件名的循环

来自分类Dev

使gstreamer循环文件名

来自分类Dev

带文件名的循环

来自分类Dev

For循环写入文件名

来自分类Dev

For循环读取文件名

来自分类Dev

循环生成多维数组

来自分类Dev

循环生成的散点图的颜色

来自分类Dev

循环生成空列表