我想从列表中下载文件。例如list.txt
是列表文件。它包含文件名列表:
pic_01.jpg
pic_02.jpg
pic_xxx.jpg
我需要一个循环,逐个取出文件名并将其写入另一个文件(只有一个名称)。下载脚本将使用这个单个文件名。
总结一下:将列表中的文件名发送到另一个文件,该文件只包含一个文件名(可能带有循环)。
答案1
您可以使用循环逐行读取文件,while
并将echo
每一行读取到一个新文件中:
#!/bin/bash
while IFS='' read -r l || [[ -n "$l" ]]; do
echo $l >$(mktemp -p.)
done <list.txt
这将循环遍历每一行list.txt
并将整行打印到当前目录中创建的临时文件中。默认情况下mktemp
使用模板tmp.XXXXXXXXXX
创建文件 - X
s 将被随机字符替换 - 您可以通过指定不同的模板来适应您的需要,例如使其成为mktemp -p. file.XXXXX
。
进一步阅读:
- 逐行读取文件并将值分配给变量
man mktemp