鱼壳里有丰富的圆形`ls [G-S] *`?

时间:2018-02-18 22:00:12

标签: linux shell fish

在Bash中可以

ls [G-S]*

它会列出g-sG-S的所有文件。

如何在鱼壳中完成?

2 个答案:

答案 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) 过滤结果。