Skip to content

antony@notes:~/misc$ cat "回家功課.md"

回家功課

2021-11-05· misc

回家功課

bigred@adm100:~$ wget -qO - http://www.oc99.org/dt/mydip1.sh | bash -q 代表不要回傳下載幾% -O - 代表網站的程式輸出到終端機

#!/bin/bash

[ ! -d ~/opendata/dip ] && mkdir -p ~/opendata/dip/
[ ! -d tmp/dip ] && mkdir -p tmp/dip/
wget http://104.131.160.22/dt/dip.url -O tmp/dip.url &>/dev/null

while read line
do
   [ "$line" == "" ] && break
   u=${line%% *}; f=${line##* }
   # echo $u,$f
   wget "$u" -O tmp/$f &>/dev/null;unzip -o tmp/$f -d tmp/dip &>/dev/null
   [ "$?" == "0" ] && echo "$f ok"

   n=$(ls tmp/dip/*DailyImmigPort*.csv)
   mv tmp/dip/"${n##*/}" ~/opendata/dip/
   rm -r tmp/dip/*
   sleep 2
done < tmp/dip.url

[ -f tmp/diphead.txt ] && rm tmp/diphead.txt
n=$(ls ~/opendata/dip/*.csv)
for x in $n
do
  [ ! -f tmp/diphead.txt ] && head -n 1 $x > tmp/diphead.txt
  cat $x | tail -n +3 >> tmp/dip.tmp
  mv tmp/dip.tmp $x
done

s=$(cat tmp/diphead.txt | cut -d ',' -f10- | tr ',' ' ')

[ -f ~/opendata/dip/seaport.list ] && rm ~/opendata/dip/seaport.list && rm ~/opendata/dip/airport.list
c=10
for x in `echo $s`
do
  [ "$c" == "100" ] && break
  echo $x | grep '港' &>/dev/null
  if [ "$?" == "0" ]; then
     echo "$c $x" >> ~/opendata/dip/seaport.list
  else
     echo "$c $x" >> ~/opendata/dip/airport.list
  fi
  c=$(( $c+3 ))
done

echo "[機場 : airport.list]"
cat ~/opendata/dip/airport.list
echo""
echo "[港口 : seaport.list]"
cat ~/opendata/dip/seaport.list

#!/bin/bash

[ ! -d ~/opendata/dip/ ] && echo "run mydip1.sh first" && exit 1
mkdir -p ~/opendata/dip/all; rm ~/opendata/dip/all/*.csv tmp/dip.csv &>/dev/null
[ ! -d tmp ] && mkdir tmp


echo "" >tmp/dip.csv
for x in `ls ~/opendata/dip/*.csv`
do
  cat $x >> tmp/dip.csv
done

cat tmp/dip.csv | cut -d ',' -f1,3,4,6,7 > ~/opendata/dip/all/diptaoyuan.csv
l=$(cat tmp/dip.csv | wc -l)

while read line
do
  s=${line% *}; s1=$(( $s+1 ))
  n=${line#* }

  [ -f column.file ] && rm column.file
  c=1
  while [ $c -le $l ]
  do
     echo $n >> column.file
     c=$(( $c+1 ))
  done

  paste -d',' <(cut -d',' -f1 tmp/dip.csv) column.file <(cut -d',' -f"$s,$s1" tmp/dip.csv) > tmp/$s.txt

  while read line
  do
     echo $s-$line >> tmp/$s1.txt
  done < tmp/$s.txt

  cat tmp/$s1.txt >> ~/opendata/dip/all/dipseaport.csv
done < ~/opendata/dip/seaport.list

while read line
do
  s=${line% *}; s1=$(( $s+1 ))
  n=${line#* }

  [ -f column.file ] && rm column.file

  c=1
  while [ $c -le $l ]
  do
     echo $n >> column.file
     c=$(( $c+1 ))
  done

  paste -d',' <(cut -d',' -f1 tmp/dip.csv) column.file <(cut -d',' -f"$s,$s1" tmp/dip.csv) > tmp/$s.txt

  while read line
  do
     echo $s-$line >> tmp/$s1.txt
  done < tmp/$s.txt

  cat tmp/$s1.txt >> ~/opendata/dip/all/dipairport.csv

done < ~/opendata/dip/airport.list