【发布时间】:2015-03-06 18:39:51
【问题描述】:
假设我有一个文件夹,其中包含名称格式为foo<number1>.bar.o<number2> 的文件。 <number1> 可以由 1、2 或 3 数字组成。
现在,如果出于某种奇怪的原因,我只想移动 <number1> 由 1 或 2 数字组成的文件,而不是 3,我会编写一个 python 脚本:
#!/bin/python
import glob, shutil, re
for f in glob.glob("*.bar.o*"):
print f
numbers = map(int, re.findall('\d+', f))
print numbers
if numbers[0] < 100:
shutil.move(f, "dir/" + f)
现在的问题:如果用更少的代码(例如在一行中(最多 80 个字符)),如何才能做到这一点?
希望有一个可以在bash shell 中使用的解决方案。
【问题讨论】:
-
您是否尝试过自己在 bash 中解决这个问题?如果是这样,你在哪里卡住了?
-
@TomFenech 在
bash部分,真的。我的问题更多是基于对其他解决方案的兴趣,因为我知道我花了大约 10 分钟的代码在大小上远非最佳。我现在确实看到了一个缺陷,即它不是一个真正的问题,或者是一个问题,但我仍然感兴趣。