我有一个包含1000行的文件,看起来像这样
978_Ad2_01000.fnc
979_Ad2_01001.fnc
97_Ad2_00098.fnc
981_Ad2_01003.fnc
982_Ad2_01004.fnc
983_Ad2_01005.fnc
984_Ad2_01006.fnc
985_Ad2_01007.fnc
986_Ad2_01008.fnc
988_Ad2_01010.fnc
98_Ad2_00099.fnc
我想创建与文件中的行一样多的文件夹。 我写了这个小循环:
#! /bin/bash
while IFS= read -r line
do
mkdir "$line"
done < ~/Desktop/*.txt
我想为我的目录中存在的多个.txt文件迭代此命令。这就是我解析
的原因 < ~/Desktop/*.txt.
问题是它只读取并创建了几(5)个文件夹然后停止。 我确信这是非常微不足道的,但我真的不明白。
答案 0 :(得分:0)
您无法使用<
从多个文件重定向。相反,您可以使用
cat ~/Desktop/*.txt | while IFS= read -r line; do
mkdir "$line"
done
或者只是
cat ~/Desktop/*.txt | xargs -d '\n' mkdir
cat
将连接它给出的文件并将它们写入stdout,这样你就有了一个文件描述符,从中可以读取所有文件的内容,并且可以用作a的端点。管道到循环(或xargs')stdin。