我正在远程处理集群并提供数千个工作。一些工作提前崩溃。我需要将这些作业的输出文件(小于 1KB)移动到另一个文件夹并重新启动它们。我猜 find 可以通过以下方式移动它们:
find . -size -1000c -exec mv {} ../crashed \;
但我还需要重新启动这些崩溃的作业。输出文件夹中一堆文件夹中的输出文件,我需要单独的文件夹名和文件名(不带扩展名)。
我猜 sed 或/和 awk 可以很容易地做到这一点,但我不知道怎么做。顺便说一句,我正在研究 BASH shell。
我正在尝试使用 cut,这似乎有效:
for i in $( find . -size -1000c )
do
FOLDER=$(echo "${i%.*}" | cut -d'/' -f2)
FILENAME=$(echo "${i%.*}" | cut -d'/' -f3)
done
但是使用sed或awk不是更好吗?如何?