2013年11月8日 星期五

將整個記錄檔依指定開頭合併成為一行



將整個記錄檔依指定開頭合併成為一行
awk ' { if( $1 ~ /^Access|^Rquest|^Status/) 
            { print "\n"; printf "%s",$0 } 
            else 
            { printf "%s",$0 }
      }' analyzer.log

$1 該行的第一個字
$0 整行

依 Access 或 Request 或 Status 為開頭, 其它行接續至該末端
所以合併之後開頭只會有Access 或 Request 或 Status

print  直接印出
printf 格式化字串印出, 但會將末端換行符號刪除




常見去空白行方法
tr -s '\n' < abc.txt
grep -v "^$" abc.txt
sed '/^$/d' abc.txt
sed '/./!d' abc.txt
awk '/./' abc.txt


去除同行連續相同字
echo "abc1 abc1 abcd2 abcd3 abcd4 abcd1" |sed -e 's/\b\([a-z0-9]\+\)[ ,\n]\1/\1/g'
abc1 abcd2 abcd3 abcd4 abcd1

沒有留言:

張貼留言

Extreme XOS run pyton scripts

XOS run python scripts v15.7 or high 將交換器上的 IP & MAC 往syslog 丟, 簡單將IP資料保留下 ## 編緝Scripts # vi ip2syslog.py #!/usr/bin/python # ...