상위 디렉터리 내에 다음 하위 디렉터리가 있습니다./
find . -type d|sort
.
./M1_DMSO_120h
./M1_DMSO_24h
./M1_GW4869_120h
./M1_GW4869_24h
./M2_DMSO_120h
./M2_DMSO_24h
./M2_GW4869_120h
./M2_GW4869_24h
./M3_DMSO_120h
./M3_DMSO_24h
./M3_GW4869_120h
./M3_GW4869_24h
find . -type f -maxdepth 2 |sort
./M1_DMSO_120h/GSM7073729_M1_DMSO_120h_barcodes.tsv.gz
./M1_DMSO_120h/GSM7073729_M1_DMSO_120h_features.tsv.gz
./M1_DMSO_120h/GSM7073729_M1_DMSO_120h_matrix.mtx.gz
./M1_DMSO_24h/GSM7073723_M1_DMSO_24h_barcodes.tsv.gz
./M1_DMSO_24h/GSM7073723_M1_DMSO_24h_features.tsv.gz
./M1_DMSO_24h/GSM7073723_M1_DMSO_24h_matrix.mtx.gz
./M1_GW4869_120h/GSM7073732_M1_GW4869_120h_barcodes.tsv.gz
./M1_GW4869_120h/GSM7073732_M1_GW4869_120h_features.tsv.gz
./M1_GW4869_120h/GSM7073732_M1_GW4869_120h_matrix.mtx.gz
./M1_GW4869_24h/GSM7073726_M1_GW4869_24h_barcodes.tsv.gz
./M1_GW4869_24h/GSM7073726_M1_GW4869_24h_features.tsv.gz
./M1_GW4869_24h/GSM7073726_M1_GW4869_24h_matrix.mtx.gz
./M2_DMSO_120h/GSM7073730_M2_DMSO_120h_barcodes.tsv.gz
./M2_DMSO_120h/GSM7073730_M2_DMSO_120h_features.tsv.gz
./M2_DMSO_120h/GSM7073730_M2_DMSO_120h_matrix.mtx.gz
./M2_DMSO_24h/GSM7073724_M2_DMSO_24h_barcodes.tsv.gz
./M2_DMSO_24h/GSM7073724_M2_DMSO_24h_features.tsv.gz
./M2_DMSO_24h/GSM7073724_M2_DMSO_24h_matrix.mtx.gz
./M2_GW4869_120h/GSM7073733_M2_GW4869_120h_barcodes.tsv.gz
./M2_GW4869_120h/GSM7073733_M2_GW4869_120h_features.tsv.gz
./M2_GW4869_120h/GSM7073733_M2_GW4869_120h_matrix.mtx.gz
./M2_GW4869_24h/GSM7073727_M2_GW4869_24h_barcodes.tsv.gz
./M2_GW4869_24h/GSM7073727_M2_GW4869_24h_features.tsv.gz
./M2_GW4869_24h/GSM7073727_M2_GW4869_24h_matrix.mtx.gz
./M3_DMSO_120h/GSM7073731_M3_DMSO_120h_barcodes.tsv.gz
./M3_DMSO_120h/GSM7073731_M3_DMSO_120h_features.tsv.gz
./M3_DMSO_120h/GSM7073731_M3_DMSO_120h_matrix.mtx.gz
./M3_DMSO_24h/GSM7073725_M3_DMSO_24h_barcodes.tsv.gz
./M3_DMSO_24h/GSM7073725_M3_DMSO_24h_features.tsv.gz
./M3_DMSO_24h/GSM7073725_M3_DMSO_24h_matrix.mtx.gz
./M3_GW4869_120h/GSM7073734_M3_GW4869_120h_barcodes.tsv.gz
./M3_GW4869_120h/GSM7073734_M3_GW4869_120h_features.tsv.gz
./M3_GW4869_120h/GSM7073734_M3_GW4869_120h_matrix.mtx.gz
./M3_GW4869_24h/GSM7073728_M3_GW4869_24h_barcodes.tsv.gz
./M3_GW4869_24h/GSM7073728_M3_GW4869_24h_features.tsv.gz
./M3_GW4869_24h/GSM7073728_M3_GW4869_24h_matrix.mtx.gz
이제 각 하위 디렉터리에서 다음과 같이 보이도록 각 파일의 헤더를 제거하고 싶습니다.
barcodes.tsv.gz
features.tsv.gz
matrix.mtx.gz
나는 rename
다음 방법을 사용하여 이 작업을 시도했습니다.
rename "s/M\d.+_//g" M*/*
그러나 이름을 바꾸면 이름이 바뀐 파일이 상위 디렉터리로 이동됩니다.
덜 우아한 솔루션은 for loop and rename
다음을 사용합니다.
for i in $(cat dir.name) ; do cd $i ; rename "s/GSM\d.+_//g" *.gz ; cd .. ;done
있는지 알고 싶습니다.옵션?를 rename
사용 하지 않고 이 작업을 완료하세요.for loop
내 시스템:
sw_vers
ProductName: macOS
ProductVersion: 13.6
BuildVersion: 22G120