将文本粘贴到UNIX中的文件名

时间:2018-10-24 06:19:52

标签: unix awk

我在String中有一个字符串列表,想要在文件夹中Targets的所有文件名的开头添加。所有文件都已订购。

String.txt:

ID1Somestring_
IDISomeOtherString_
IDISomeThirdString_

目标:

example1.fastq
example2.fastq
example3.fastq

输出:

ID1Somestring_example1.fastq
IDISomeOtherString_example2.fastq
IDISomeThirdString_example3.fastq

1 个答案:

答案 0 :(得分:1)

首先,将文件读入数组

mapfile -t strings < String.txt

然后,遍历文件并依次访问每个数组元素:

n=0; for file in *fastq; do echo mv "$file" "${strings[n++]}$file"; done
mv example1.fastq ID1Somestring_example1.fastq
mv example2.fastq IDISomeOtherString_example2.fastq
mv example3.fastq IDISomeThirdString_example3.fastq

或者,假设您的文件名不包含换行符

paste String.txt <(printf "%s\n" *fastq) |
while read -r string file; do echo mv "$file" "$string$file"; done