在Bash中可以
ls [G-S]*
它会列出g-s
和G-S
的所有文件。
如何在鱼壳中完成?
答案 0 :(得分:2)
您可以使用find -iregex "./[G-S].*"
。鱼在这方面非常有限。
答案 1 :(得分:2)
Fish目前不支持丰富的glob语法。目前的想法是应该添加一个**
命令以符合通过命令而不是魔术语法处理事物的鱼类目标。例如,请参阅https://github.com/fish-shell/fish-shell/issues/3681。解决方案是创建一个过滤结果的函数。例如,.git
glob匹配CWD中和CWD下的所有文件和目录。我经常只想要普通文件,并且想要忽略function ff --description 'Like ** but only returns plain files.'
# This also ignores .git directories.
find . \( -name .git -type d -prune \) -o -type f | sed -n -e '/\/\.git$/n' -e 's/^\.\///p'
end
子目录。所以我写了这个函数:
grep something (ff)
然后我可以这样使用:find -name
。您可以创建一个使用string match --regex
模式匹配功能的相似功能,或使用from subprocess import PIPE
import subprocess
import time
def submit_job_max_len(job_list, max_processes):
sleep_time = 0.1
processes = list()
for command in job_list:
print 'running process# {n}. Submitting {proc}.'.format(n=len(processes),
proc=str(command))
processes.append(subprocess.Popen(command, shell=False, stdout=None, stdin=PIPE))
while len(processes) >= max_processes:
time.sleep(sleep_time)
processes = [proc for proc in processes if proc.poll() is None]
while len(processes) > 0:
time.sleep(sleep_time)
processes = [proc for proc in processes if proc.poll() is None]
cmd = 'cat runCommands.sh'
job_list = ((cmd.format(n=i)).split() for i in range(5))
submit_job_max_len(job_list, max_processes=10)
过滤结果。