Skip to content

Instantly share code, notes, and snippets.

@district10
Last active January 13, 2017 11:02
Show Gist options
  • Save district10/4063419923cc973bd485133dfc9c85b7 to your computer and use it in GitHub Desktop.
Save district10/4063419923cc973bd485133dfc9c85b7 to your computer and use it in GitHub Desktop.
Unpack images

src dir:

src
├── CAM_1
│   ├── YDXJ2002.jpg
│   ├── YDXJ2003.jpg
│   ├── YDXJ2004.jpg
│   ├── YDXJ2005.jpg
│   ├── YDXJ2006.jpg
│   ├── YDXJ2007.jpg
│   ├── YDXJ2008.jpg
│   ├── YDXJ2009.jpg
│   ├── YDXJ2010.jpg
│   ├── YDXJ2011.jpg
│   ├── YDXJ2012.jpg
│   ├── YDXJ2013.jpg
│   ├── YDXJ2014.jpg
│   ├── YDXJ2015.jpg
│   └── YDXJ2016.jpg
├── CAM_2
│   ├── YDXJ2062.jpg
│   ├── YDXJ2063.jpg
│   ├── YDXJ2064.jpg
│   ├── YDXJ2065.jpg
│   ├── YDXJ2066.jpg
│   ├── YDXJ2067.jpg
│   ├── YDXJ2068.jpg
│   ├── YDXJ2069.jpg
│   ├── YDXJ2070.jpg
│   ├── YDXJ2071.jpg
│   ├── YDXJ2072.jpg
│   ├── YDXJ2073.jpg
│   ├── YDXJ2074.jpg
│   ├── YDXJ2075.jpg
│   └── YDXJ2076.jpg
├── CAM_3
│   ├── YDXJ2043.jpg
│   ├── YDXJ2044.jpg
│   ├── YDXJ2045.jpg
│   ├── YDXJ2046.jpg
│   ├── YDXJ2047.jpg
│   ├── YDXJ2048.jpg
│   ├── YDXJ2049.jpg
│   ├── YDXJ2050.jpg
│   ├── YDXJ2051.jpg
│   ├── YDXJ2052.jpg
│   ├── YDXJ2053.jpg
│   ├── YDXJ2054.jpg
│   ├── YDXJ2055.jpg
│   ├── YDXJ2056.jpg
│   └── YDXJ2057.jpg
├── CAM_4
│   ├── YDXJ2109.jpg
│   ├── YDXJ2110.jpg
│   ├── YDXJ2111.jpg
│   ├── YDXJ2112.jpg
│   ├── YDXJ2113.jpg
│   ├── YDXJ2114.jpg
│   ├── YDXJ2115.jpg
│   ├── YDXJ2116.jpg
│   ├── YDXJ2117.jpg
│   ├── YDXJ2118.jpg
│   ├── YDXJ2119.jpg
│   ├── YDXJ2120.jpg
│   ├── YDXJ2121.jpg
│   ├── YDXJ2122.jpg
│   └── YDXJ2123.jpg
├── CAM_5
│   ├── YDXJ2074.jpg
│   ├── YDXJ2075.jpg
│   ├── YDXJ2076.jpg
│   ├── YDXJ2077.jpg
│   ├── YDXJ2078.jpg
│   ├── YDXJ2079.jpg
│   ├── YDXJ2080.jpg
│   ├── YDXJ2081.jpg
│   ├── YDXJ2082.jpg
│   ├── YDXJ2083.jpg
│   ├── YDXJ2084.jpg
│   ├── YDXJ2085.jpg
│   ├── YDXJ2086.jpg
│   ├── YDXJ2087.jpg
│   └── YDXJ2088.jpg
└── CAM_6
    ├── YDXJ1897.jpg
    ├── YDXJ1898.jpg
    ├── YDXJ1899.jpg
    ├── YDXJ1900.jpg
    ├── YDXJ1901.jpg
    ├── YDXJ1902.jpg
    ├── YDXJ1903.jpg
    ├── YDXJ1904.jpg
    ├── YDXJ1905.jpg
    ├── YDXJ1906.jpg
    ├── YDXJ1907.jpg
    ├── YDXJ1908.jpg
    ├── YDXJ1909.jpg
    ├── YDXJ1910.jpg
    └── YDXJ1911.jpg

6 directories, 90 files  

unpack to dst dir:

dst
├── 00000
│   ├── YDXJ1897.jpg
│   ├── YDXJ2002.jpg
│   ├── YDXJ2043.jpg
│   ├── YDXJ2062.jpg
│   ├── YDXJ2074.jpg
│   └── YDXJ2109.jpg
├── 00001
│   ├── YDXJ1898.jpg
│   ├── YDXJ2003.jpg
│   ├── YDXJ2044.jpg
│   ├── YDXJ2063.jpg
│   ├── YDXJ2075.jpg
│   └── YDXJ2110.jpg
├── 00002
│   ├── YDXJ1899.jpg
│   ├── YDXJ2004.jpg
│   ├── YDXJ2045.jpg
│   ├── YDXJ2064.jpg
│   ├── YDXJ2076.jpg
│   └── YDXJ2111.jpg
├── 00003
│   ├── YDXJ1900.jpg
│   ├── YDXJ2005.jpg
│   ├── YDXJ2046.jpg
│   ├── YDXJ2065.jpg
│   ├── YDXJ2077.jpg
│   └── YDXJ2112.jpg
├── 00004
│   ├── YDXJ1901.jpg
│   ├── YDXJ2006.jpg
│   ├── YDXJ2047.jpg
│   ├── YDXJ2066.jpg
│   ├── YDXJ2078.jpg
│   └── YDXJ2113.jpg
├── 00005
│   ├── YDXJ1902.jpg
│   ├── YDXJ2007.jpg
│   ├── YDXJ2048.jpg
│   ├── YDXJ2067.jpg
│   ├── YDXJ2079.jpg
│   └── YDXJ2114.jpg
├── 00006
│   ├── YDXJ1903.jpg
│   ├── YDXJ2008.jpg
│   ├── YDXJ2049.jpg
│   ├── YDXJ2068.jpg
│   ├── YDXJ2080.jpg
│   └── YDXJ2115.jpg
├── 00007
│   ├── YDXJ1904.jpg
│   ├── YDXJ2009.jpg
│   ├── YDXJ2050.jpg
│   ├── YDXJ2069.jpg
│   ├── YDXJ2081.jpg
│   └── YDXJ2116.jpg
├── 00008
│   ├── YDXJ1905.jpg
│   ├── YDXJ2010.jpg
│   ├── YDXJ2051.jpg
│   ├── YDXJ2070.jpg
│   ├── YDXJ2082.jpg
│   └── YDXJ2117.jpg
├── 00009
│   ├── YDXJ1906.jpg
│   ├── YDXJ2011.jpg
│   ├── YDXJ2052.jpg
│   ├── YDXJ2071.jpg
│   ├── YDXJ2083.jpg
│   └── YDXJ2118.jpg
├── 00010
│   ├── YDXJ1907.jpg
│   ├── YDXJ2012.jpg
│   ├── YDXJ2053.jpg
│   ├── YDXJ2072.jpg
│   ├── YDXJ2084.jpg
│   └── YDXJ2119.jpg
├── 00011
│   ├── YDXJ1908.jpg
│   ├── YDXJ2013.jpg
│   ├── YDXJ2054.jpg
│   ├── YDXJ2073.jpg
│   ├── YDXJ2085.jpg
│   └── YDXJ2120.jpg
├── 00012
│   ├── YDXJ1909.jpg
│   ├── YDXJ2014.jpg
│   ├── YDXJ2055.jpg
│   ├── YDXJ2074.jpg
│   ├── YDXJ2086.jpg
│   └── YDXJ2121.jpg
├── 00013
│   ├── YDXJ1910.jpg
│   ├── YDXJ2015.jpg
│   ├── YDXJ2056.jpg
│   ├── YDXJ2075.jpg
│   ├── YDXJ2087.jpg
│   └── YDXJ2122.jpg
└── 00014
    ├── YDXJ1911.jpg
    ├── YDXJ2016.jpg
    ├── YDXJ2057.jpg
    ├── YDXJ2076.jpg
    ├── YDXJ2088.jpg
    └── YDXJ2123.jpg

15 directories, 90 files

via:

./unpack.sh  
#!/bin/bash
C1=(); for i in src/CAM_1/*; do C1+=($i); done;
C2=(); for i in src/CAM_2/*; do C2+=($i); done;
C3=(); for i in src/CAM_3/*; do C3+=($i); done;
C4=(); for i in src/CAM_4/*; do C4+=($i); done;
C5=(); for i in src/CAM_5/*; do C5+=($i); done;
C6=(); for i in src/CAM_6/*; do C6+=($i); done;
if [[ "${#C1[@]}" -ne "${#C2[@]}" ]]; then exit; fi;
if [[ "${#C1[@]}" -ne "${#C3[@]}" ]]; then exit; fi;
if [[ "${#C1[@]}" -ne "${#C4[@]}" ]]; then exit; fi;
if [[ "${#C1[@]}" -ne "${#C5[@]}" ]]; then exit; fi;
if [[ "${#C1[@]}" -ne "${#C6[@]}" ]]; then exit; fi;
echo "Unpacking 6 x ${#C1[@]}" of images...;
for i in "${!C1[@]}"; do
dst_i="dst/$(printf %05d $i)";
mkdir -p $dst_i;
printf "%s: {dst/%s <- [%s,%s,%s,%s,%s,%s]}\n" "$i" $dst_i \
"${C1[$i]}" "${C2[$i]}" "${C3[$i]}" "${C4[$i]}" "${C5[$i]}" "${C6[$i]}";
cp "${C1[$i]}" "${C2[$i]}" "${C3[$i]}" "${C4[$i]}" "${C5[$i]}" "${C6[$i]}" $dst_i;
done
@district10
Copy link
Author

output:

Unpacking 6 x 15 of images...
0: {dst/dst/00000 <- [src/CAM_1/YDXJ2002.jpg,src/CAM_2/YDXJ2062.jpg,src/CAM_3/YDXJ2043.jpg,src/CAM_4/YDXJ2109.jpg,src/CAM_5/YDXJ2074.jpg,src/CAM_6/YDXJ1897.jpg]}
1: {dst/dst/00001 <- [src/CAM_1/YDXJ2003.jpg,src/CAM_2/YDXJ2063.jpg,src/CAM_3/YDXJ2044.jpg,src/CAM_4/YDXJ2110.jpg,src/CAM_5/YDXJ2075.jpg,src/CAM_6/YDXJ1898.jpg]}
2: {dst/dst/00002 <- [src/CAM_1/YDXJ2004.jpg,src/CAM_2/YDXJ2064.jpg,src/CAM_3/YDXJ2045.jpg,src/CAM_4/YDXJ2111.jpg,src/CAM_5/YDXJ2076.jpg,src/CAM_6/YDXJ1899.jpg]}
3: {dst/dst/00003 <- [src/CAM_1/YDXJ2005.jpg,src/CAM_2/YDXJ2065.jpg,src/CAM_3/YDXJ2046.jpg,src/CAM_4/YDXJ2112.jpg,src/CAM_5/YDXJ2077.jpg,src/CAM_6/YDXJ1900.jpg]}
4: {dst/dst/00004 <- [src/CAM_1/YDXJ2006.jpg,src/CAM_2/YDXJ2066.jpg,src/CAM_3/YDXJ2047.jpg,src/CAM_4/YDXJ2113.jpg,src/CAM_5/YDXJ2078.jpg,src/CAM_6/YDXJ1901.jpg]}
5: {dst/dst/00005 <- [src/CAM_1/YDXJ2007.jpg,src/CAM_2/YDXJ2067.jpg,src/CAM_3/YDXJ2048.jpg,src/CAM_4/YDXJ2114.jpg,src/CAM_5/YDXJ2079.jpg,src/CAM_6/YDXJ1902.jpg]}
6: {dst/dst/00006 <- [src/CAM_1/YDXJ2008.jpg,src/CAM_2/YDXJ2068.jpg,src/CAM_3/YDXJ2049.jpg,src/CAM_4/YDXJ2115.jpg,src/CAM_5/YDXJ2080.jpg,src/CAM_6/YDXJ1903.jpg]}
7: {dst/dst/00007 <- [src/CAM_1/YDXJ2009.jpg,src/CAM_2/YDXJ2069.jpg,src/CAM_3/YDXJ2050.jpg,src/CAM_4/YDXJ2116.jpg,src/CAM_5/YDXJ2081.jpg,src/CAM_6/YDXJ1904.jpg]}
8: {dst/dst/00008 <- [src/CAM_1/YDXJ2010.jpg,src/CAM_2/YDXJ2070.jpg,src/CAM_3/YDXJ2051.jpg,src/CAM_4/YDXJ2117.jpg,src/CAM_5/YDXJ2082.jpg,src/CAM_6/YDXJ1905.jpg]}
9: {dst/dst/00009 <- [src/CAM_1/YDXJ2011.jpg,src/CAM_2/YDXJ2071.jpg,src/CAM_3/YDXJ2052.jpg,src/CAM_4/YDXJ2118.jpg,src/CAM_5/YDXJ2083.jpg,src/CAM_6/YDXJ1906.jpg]}
10: {dst/dst/00010 <- [src/CAM_1/YDXJ2012.jpg,src/CAM_2/YDXJ2072.jpg,src/CAM_3/YDXJ2053.jpg,src/CAM_4/YDXJ2119.jpg,src/CAM_5/YDXJ2084.jpg,src/CAM_6/YDXJ1907.jpg]}
11: {dst/dst/00011 <- [src/CAM_1/YDXJ2013.jpg,src/CAM_2/YDXJ2073.jpg,src/CAM_3/YDXJ2054.jpg,src/CAM_4/YDXJ2120.jpg,src/CAM_5/YDXJ2085.jpg,src/CAM_6/YDXJ1908.jpg]}
12: {dst/dst/00012 <- [src/CAM_1/YDXJ2014.jpg,src/CAM_2/YDXJ2074.jpg,src/CAM_3/YDXJ2055.jpg,src/CAM_4/YDXJ2121.jpg,src/CAM_5/YDXJ2086.jpg,src/CAM_6/YDXJ1909.jpg]}
13: {dst/dst/00013 <- [src/CAM_1/YDXJ2015.jpg,src/CAM_2/YDXJ2075.jpg,src/CAM_3/YDXJ2056.jpg,src/CAM_4/YDXJ2122.jpg,src/CAM_5/YDXJ2087.jpg,src/CAM_6/YDXJ1910.jpg]}
14: {dst/dst/00014 <- [src/CAM_1/YDXJ2016.jpg,src/CAM_2/YDXJ2076.jpg,src/CAM_3/YDXJ2057.jpg,src/CAM_4/YDXJ2123.jpg,src/CAM_5/YDXJ2088.jpg,src/CAM_6/YDXJ1911.jpg]}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment