http://fun-sootv.blogspot.jp/2016/06/blog-post.html
こんな感じ。
531 ○○歳 名前 現住陪餐会員 男性 郵便番号 住所 1973/5/31
早速、bdsearch, agcalc という名前で、bash_profile にエイリアスを設定しておいた。
#!/bin/bash
# 実行時に指定された引数の数、つまり変数 $# の値が 2 でなければエラー終了。
if [ $# -ne 2 ]; then
echo "指定された引数は$#個です。" 1>&2
echo "実行するには2個の引数が必要です。" 1>&2
exit 1
fi
# シェル変数を二つ設定する。start_day=検索開始日。end_day=検索終了日。
# nkf で、改行コードを Unix 形式に変える。
# gsed で、1973.5.31 という日付表示を 1973/5/31 という表示形式に変える。
# この段階で一回、ファイルに書き出しておく。何か別の目的に使えるかもしれないので。<= やっぱり、やめた。
# 「0531」などと表現された誕生日のうち、awk で、検索開始日と検索終了日の範囲に該当する者を抜き出す。
# ただし、召天者ははじく。
# sort して、less で表示。
start_day="$1"
end_day="$2"
#now=`date "+%Y%m%d"`
now_Y=`date "+%Y"`
now_m=`date "+%-m"`
now_d=`date "+%-d"`
cat ~/ディレクトリ/asty-ch_member.tab | nkf -Luw | gsed -e 's|\([0-9]{4}\)\.\([0-9]\?\)\.\([0-9]\?\)|\1/\2/\3|g’ | awk '$9 >= '${start_day}' && $9 <= '${end_day}' && $7 != "召天者" {split($8,my_birthday,"/"); if('${now_m}' < my_birthday[2]){print $9,my_age = ('${now_Y}' - my_birthday[1] - 1 )"歳",$1,$7,$6,$10,$11,$8}
else if('${now_m}' > my_birthday[2]){
print $9,my_age = ('${now_Y}' - my_birthday[1])"歳",$1,$7,$6,$10,$11,$8}
else if('${now_m}' == my_birthday[2] && '${now_d}' < my_birthday[3]){
print $9,my_age = ('${now_Y}' - my_birthday[1] - 1 )"歳",$1,$7,$6,$10,$11,$8}
else if('${now_m}' == my_birthday[2] && '${now_d}' >= my_birthday[3]){
print $9,my_age = ('${now_Y}' - my_birthday[1])"歳",$1,$7,$6,$10,$11,$8}
}' | sort | less
うれしい! でも、疲れた〜
No comments:
Post a Comment