次のファイルのリストがあります。
260704 96 -rw-r--r-- 1 MacStudio staff 47131 Jul 28 20:18 ./GSM7673474_30_CC0022.barcodes.tsv.gz
260705 6264 -rw-r--r-- 1 MacStudio staff 3206621 Jul 28 20:18 ./GSM7673474_30_CC0022.features.tsv.gz
260706 592096 -rw-r--r-- 1 MacStudio staff 303149616 Jul 28 20:18 ./GSM7673474_30_CC0022.matrix.mtx.gz
260707 88 -rw-r--r-- 1 MacStudio staff 44397 Jul 28 20:18 ./GSM7673475_31_CC0022.barcodes.tsv.gz
260708 5800 -rw-r--r-- 1 MacStudio staff 2967665 Jul 28 20:18 ./GSM7673475_31_CC0022.features.tsv.gz
260709 481960 -rw-r--r-- 1 MacStudio staff 246761628 Jul 28 20:18 ./GSM7673475_31_CC0022.matrix.mtx.gz
260710 80 -rw-r--r-- 1 MacStudio staff 38322 Jul 28 20:18 ./GSM7673476_32_CC0022.barcodes.tsv.gz
260711 6104 -rw-r--r-- 1 MacStudio staff 3123868 Jul 28 20:18 ./GSM7673476_32_CC0022.features.tsv.gz
260712 430808 -rw-r--r-- 1 MacStudio staff 220569913 Jul 28 20:19 ./GSM7673476_32_CC0022.matrix.mtx.gz
260713 80 -rw-r--r-- 1 MacStudio staff 38152 Jul 28 20:19 ./GSM7673477_33_CC0053.barcodes.tsv.gz
260714 6160 -rw-r--r-- 1 MacStudio staff 3152423 Jul 28 20:19 ./GSM7673477_33_CC0053.features.tsv.gz
260715 404888 -rw-r--r-- 1 MacStudio staff 207300291 Jul 28 20:19 ./GSM7673477_33_CC0053.matrix.mtx.gz
これらのファイルを名前が一致するディレクトリに移動したいと思います。以下のように「GSM7673474_3x」と一致するディレクトリを作成しました。
drwxr-xr-x@ 2 MacStudio staff 64 Nov 10 18:36 GSM7673474_30/
drwxr-xr-x@ 2 MacStudio staff 64 Nov 10 18:37 GSM7673475_31/
drwxr-xr-x@ 2 MacStudio staff 64 Nov 10 18:37 GSM7673476_32/
drwxr-xr-x@ 2 MacStudio staff 64 Nov 10 18:38 GSM7673477_33/
Kusalanandaの回答に基づいてパターンマッチに基づいてファイルを移動するファイルを名前が一致するディレクトリに移動するために、次のスクリプトを考えました。
find . -maxdepth 1 -type d |rg -o "GSM\d+.*" > dir.name
for i in $(cat dir.name) ; do echo $i;for filename in ./*"$i"* ;do mv -i "$filename"/ $i ;done ;done
これはmv警告でうまく機能しますが、3つのファイルのそれぞれを順番にディレクトリにmvする方法を探しています。たとえば、次のファイルは
GSM7673474_30_CC0022.barcodes.tsv.gz
GSM7673474_30_CC0022.features.tsv.gz
GSM7673474_30_CC0022.matrix.mtx.gz
GSM7673474_30
そのディレクトリと次の3つのファイルセットにあります。
GSM7673474_31_CC0022.barcodes.tsv.gz
GSM7673474_31_CC0022.features.tsv.gz
GSM7673474_31_CC0022.matrix.mtx.gz
次のディレクトリにGSM7673474_31
等。
把握するのは本当に難しいことを経験しているので、これについてのコメントをお寄せいただきありがとうございます。
私のシステム
'c. MacStudio.local
,xNMM. -----------------------------
.OMMMMo OS: macOS 13.6 22G120 x86_64
OMMM0, Host: Mac13,2
.;loddo:' loolloddol;. Kernel: 22.6.0
cKMMMMMMMMMMNWMMMMMMMMMM0: Uptime: 10 hours, 53 mins
.KMMMMMMMMMMMMMMMMMMMMMMMWd. Packages: 240 (brew)
XMMMMMMMMMMMMMMMMMMMMMMMX. Shell: zsh 5.9
;MMMMMMMMMMMMMMMMMMMMMMMM: Resolution: 2048x858
:MMMMMMMMMMMMMMMMMMMMMMMM: DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX. WM: Quartz Compositor
kMMMMMMMMMMMMMMMMMMMMMMMMWd. WM Theme: Blue (Light)
.XMMMMMMMMMMMMMMMMMMMMMMMMMMk Terminal: iTerm2
.XMMMMMMMMMMMMMMMMMMMMMMMMK. Terminal Font: Monaco 10
kMMMMMMMMMMMMMMMMMMMMMMd CPU: Apple M1 Ultra
;KMMMMMMMWXXWMMMMMMMk. GPU: Apple M1 Ultra
.cooc,. .,coo:. Memory: 3475MiB / 131072MiB
答え1
ただ問題だと思います。
autoload -Uz zmv
zmv '(GSM<->_<->)_*' '$1/$f'