Просто, с помощью printf:
while read number
do
printf ' "new-request-uri-user-part:%s": {
"query_string": {
"query": "new-request-uri-user-part:%s",
"analyze_wildcard": true
}
},
' "$number" "$number"
done < input
Мой предпочтительный подход к этому был бы примерно таким:
for SAM_FILE in *.sam; do
samtools view -Sb "$SAM_FILE" > "${SAM_FILE/sam/bam}"
done
Который можно превратить в один вкладыш, например
for SAM_FILE in *.sam; do samtools view -Sb "$SAM_FILE" > "${SAM_FILE/sam/bam}"; done
При этом используется расширение параметра для изменения расширения выходного файла. :https://wiki.bash-hackers.org/syntax/pe
По моему мнению, этот стиль дает понять, что вы пытаетесь сделать, если позже вы или кто-то другой наткнетесь на ваши сценарии.
Моя команда работала с небольшими изменениями, и я считаю, что она проще и менее многословна, чем цикл for
:
ls *.sam | cut -d "_" -f 1 | xargs -I {} bash -c " samtools view -Sb {}_aligned_minimap.sam > {}_aligned_minimap.bam"