我有许多格式相同的文件:mubunching-100302.0003.001_1c,mubunching-100302.0005.001_1c ...
我想向程序提供许多具有最小值的文件,例如:只有索引* .0005。*和更高版本的文件:
python Code.py mubunching-100302.0005.001_1c mubunching-100302.0008.001_1c ...
我对bash很新,不知道从哪里开始。感谢您提供任何帮助和建议!
答案 0 :(得分:1)
您可以获取符合条件的所有文件的列表,如下所示:
ls | awk -F. '$2 >= 5 {print}'
这是awk
将第二个.
分隔字段与5
进行比较,并且只打印出这个名称的名称。如果你想用Python脚本处理这些文件:
ls | awk -F. '$2 >= 5 {print}' | xargs python Code.py
例如,给定一个包含以下内容的目录:
$ ls
mubunching-100302.0002.001_1c mubunching-100302.0005.001_1c
mubunching-100302.0003.001_1c mubunching-100302.0008.001_1c
上面的第一个命令将产生:
$ ls | awk -F. '$2 >= 5 {print}'
mubunching-100302.0005.001_1c
mubunching-100302.0008.001_1c
答案 1 :(得分:1)
您可以使用find
和awk
获取所需文件名列表:
find . -type f -name "mubunching*" | awk -F'[.]' '$(NF-1)>=5'
要将列表传递给您的程序,请使用进程替换:
python Code.py $(find . -type f -name "mubunching*" | awk -F'[.]' '$(NF-1)>=5')