vim check.sh
USER=$1 FILE_PATH=$2 SEND_SELF=$3 ADDRESS=() #バックアップ cp hogehoge hogehoge`date +%Y%m%d_%H%M%s` for address in `cat $FILE_PATH` do #アドレスのフォーマットになっているか if [ `echo "$address" | grep -E "[-_a-zA-Z0-9\.+]+@[-a-zA-Z0-9\.]+"` ]; then #日本語が含まれていないか if [ -n `echo "$address" | awk '$0 !~ /^[\001-\177]*$/'`] ; then ADDRESS+=(,$address) else echo "$address includes multi-byte" continue fi else echo "$address is not format of address" continue fi done if [ -n "$ADDRESS" ]; then #アドレスの最初の配列の , を削除 ADDRESS[0]=`echo "${ADDRESS[0]}" | cut -c 2-` #アドレスの配列の空白削除のためにIFS に空白を指定 IFS="" if [ -n "$SEND_SELF" ]; then echo "$USER: \\$USER,${ADDRESS[*]}" >> hoge else echo "$USER: ${ADDRESS[*]}" >> hoge fi fi
sh check.sh user hogehoge.txt
みたいな形で使う。