2 月の 1 か月のデータを含むファイルがあり、Feb
ファイルを毎日分割する必要があります。Feb_1
Feb_2
Feb_29
ここに私の論理があります:
Inputfile= $1
monthname = "Feb"
while getopts :
datefield="1"
outfile="Feb_1"
while read line
do
s = `echo "$line" | awk '{print $2}'`
t = `echo "$line" | awk '{print $3}'`
if [ "$s" = "$monthname" ]
if [ "$t" = "$datefield" ]
echo $line > "$outfile"
else
datefield = $t
outfile =$monthaname"_"$t
echo $line > "$outfile"
fi
else
echo $line > "$outfile"
fi
done < "$inputfile"
しかしs = echo "$line" | awk '{print $2}'
$2
2 番目のコマンド ライン引数を要求しているため、これは 2 番目の単語を与えていません。以下のように'
前に置いてみました。$2
s = echo "$line" | awk '{print '$2}'
その場合、新しいエラーがスローされ、最初の行が存在しないためWed Feb 1
、スローされたエラーであると仮定します。Wed Feb 1
サンプルデータは次のとおりです。
Wed Feb 1 00:10:00 cpu usage
KLOGENT.exe 3068 SYSTEM 00 0:00:00 17345K 15467 BELOW NORMAL
SGHT.exe 3868 SYSTEM 00 0:00:00 18845K 15499 BELOW NORMAL
.......
.......
Wed Feb 1 00:15:00 cpu usage
KLTREENT.exe 3068 SYSTEM 00 0:00:00 17345K 15767 BELOW NORMAL
KJTRT.exe 3868 SYSTEM 00 0:00:00 18845K 13699 BELOW NORMAL
..............
...........
Wed Feb 1 23:55:00 cpu usage
HTR.exe 3068 SYSTEM 00 0:00:00 1785K 4532 BELOW NORMAL
KLU.exe 3868 SYSTEM 00 0:00:00 15645K 678 BELOW NORMAL
...............
.................
Thu Feb 2 00:10:00 cpu usage
JUYT.exe 3068 SYSTEM 00 0:00:00 143245K 157767 BELOW NORMAL
GFD.exe 3868 SYSTEM 00 0:00:00 18845K 879 BELOW NORMAL
.........................
.......................
Thu Feb 28 00:15:00 cpu usage
FRE.exe 3068 SYSTEM 00 0:00:00 143245K 157767 BELOW NORMAL
YUT.exe 3868 SYSTEM 00 0:00:00 18845K 879 BELOW NORMAL
............................
...................
Thu Feb 28 23:55:00 cpu usage
TRE.exe 3068 SYSTEM 00 0:00:00 143245K 157767 BELOW NORMAL
KJH.exe 3868 SYSTEM 00 0:00:00 18845K 879 BELOW NORMAL