汚かった
まぁログファイルなんかを渡すときに、IPアドレスとかIDを隠蔽したいなぁ。なんて思うことがあったりするんですが、接続元ごとのアクセス集計なんかをしてる場合だと、そんな事言われても困っちゃうわけで。
そんなわけで無理くりにIPアドレスの数字(0〜9)を、英字(a〜j)に置き換えてみた。
・サーバー名を冠したフォルダ内に複数のファイルが存在する
・ファイル中身は、タブ区切りで第一フィールドに数字のみからなる何か(IPアドレスとかIDとか)が記されている
・フィールド数は3つ
の場合を想定。
$ for FILE_BEF in `ls ./*.txt` ; do > while read LINE_BEF ; do > IP_BEF=`echo "${LINE_BEF}" | cut -f 1` > IP_AFT=`echo ${IP_BEF} | sed -e s/0/a/g | sed -e s/1/b/g | sed -e s/2/c/g | sed -e s/3/d/g | sed -e s/4/e/g | sed -e s/5/f/g | sed -e s/6/g/g | sed -e s/7/h/g | sed -e s/8/i/g | sed -e s/9/j/g ` > echo -en "${IP_AFT}\t" > SCND_FLD=`echo "${LINE_BEF}" | cut -f 2` > echo -en "${SCND_FLD}\t" > THRD_FLD=`echo "${LINE_BEF}" | cut -f 3` > echo -e "${THRD_FLD}" > done < ./${FILE_BEF} > done > output
愚直にsedを10回かぶせるというアレな作りになってしまった o...|rz。実にやっつけ感が溢れている。