Я построил, за исключением того, что для этого (sry, что я еще не смог добавить документацию).
У меня есть папка, такая как:
$ ls
a b c d
[d3 ] Ввод except b d даст вам a и c $ except b d
ac
Теперь вы можете передать это на rm.
except b d | xargs -0 rm
Это может быть трудно помните, так почему бы просто не построить сценарий поверх, кроме, называемый rm-except:
#!/usr/bin/env bash
except "$@" | xargs -0 rm
Аналогично легко ls-except:
#!/usr/bin/env bash
except "$@" | xargs -0 ls
В python:
#!/usr/bin/env python3
import os
import shutil
dr = sys.argv[1]; files = os.listdir(dr)
for f in [f for f in files if os.path.isfile(dr+"/"+f)]:
folder = dr+"/"+f.split("_")[2].replace("ILN", "")
if not os.path.exists(folder):
os.makedirs(folder)
shutil.move(dr+"/"+f, folder+"/"+f)
Скопируйте его в пустой файл. Запустите его:
python3 <script> <directory>
При необходимости создайте ((ые) папку (ы) переместите файлы в папку (ы)
Использование grep:
#!/bin/bash
for file in ./KILN_SDUS51_*; do
dir="$(grep -Po "^.*_.*_\K.*(?=ILN)" <<<"$file")"
mkdir "$dir" && mv "$file" "$dir"
done