用 grep 和 awk 簡化 access log 的結果


1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env bash

TOTAL_ARGS=$#
LOG_PATH=$1
MATCH_WORD=$2

if [[ $TOTAL_ARGS -lt 2 ]]; then
echo "Usage: bash grep.sh LOG_PATH MATCH_WORD"
elif [[ ! -f $LOG_PATH ]]; then
echo "File not exists: $LOG_PATH"
else
cat $LOG_PATH | grep $MATCH_WORD | awk '{ printf "%-20s %-10s %-25s %s\n", $1, $3, substr($4, 2), $7 }'
fi