ubuntu 中的 While 循环在几次迭代后崩溃
While loop in ubuntu crash after few iteration
我有一个包含 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) 个文件夹,然后就停止了。
我敢肯定这是一件很微不足道的事情,但我真的不明白。
您不能使用 <
从多个文件重定向。相反,您可以使用
cat ~/Desktop/*.txt | while IFS= read -r line; do
mkdir "$line"
done
或者干脆
cat ~/Desktop/*.txt | xargs -d '\n' mkdir
cat
将连接给定的文件并将它们写入其标准输出,以便您拥有一个文件描述符,可以从中读取所有文件的内容,并且可以将其用作端点到循环(或 xargs')标准输入的管道。
我有一个包含 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) 个文件夹,然后就停止了。 我敢肯定这是一件很微不足道的事情,但我真的不明白。
您不能使用 <
从多个文件重定向。相反,您可以使用
cat ~/Desktop/*.txt | while IFS= read -r line; do
mkdir "$line"
done
或者干脆
cat ~/Desktop/*.txt | xargs -d '\n' mkdir
cat
将连接给定的文件并将它们写入其标准输出,以便您拥有一个文件描述符,可以从中读取所有文件的内容,并且可以将其用作端点到循环(或 xargs')标准输入的管道。