区切り文字

LOGファイルの日付が

Nov  8 10:10:10 ~

なんて事になってる場合、スクリプト無いでgrepしてひっかけたいのだが、dateコマンド(date '+%b %_d')で取得した日付を変数に突っ込むと

Nov 8 10:10:10 ~

なんて事になって、スペースが埋められてしまい比較が正常に行われない。

これは区切り文字がスペース(改行を含む)になっている為、2つ以上のスペースを1つにまとめてしまうのである。

解決方法としてはIFS(Internal Field Separator)の設定を変更して区切り文字を改行だけにしてしまう

#!/bin/bash

IFS_BACKUP=$IFS IFS=$'\n'

CHECK=`date '+%b %_d'

echo ${CHECK}

IFS=$IFS_BACKUP

これで希望通り

Nov  8 10:10:10 ~

と表示される