天天看點

【shell 腳本】檢視*.gz 檔案的内容

#!/bin/bash

# zmore

#使用'more'來檢視gzip檔案

 NOARGS=65

 NOTFOUND=66

 NOTGZIP=67

 if [ $# -eq 0 ] # 與if [ -z "$1" ]效果相同

 #  $1是可以存在的, 可以為空, 如:  zmore "" arg2 arg3

 then

   echo "Usage: `basename $0` filename" >&2

   # 錯誤消息輸出到stderr.

   exit $NOARGS

   # 傳回65作為腳本的退出狀态的值(錯誤碼).

 fi  

 filename=$1

 if [ ! -f "$filename" ]   # 将$filename引用起來, 這樣允許其中包含空白字元.

   echo "File $filename not found!" >&2

   exit $NOTFOUND

 if [ ${filename##*.} != "gz" ]

 # 在變量替換中使用中括号結構.

   echo "File $1 is not a gzipped file!"

   exit $NOTGZIP

 zcat $1 | more

 # 使用過濾指令'more.'

 # 當然, 如果你願意, 也可以使用'less'.

 exit $?   # 腳本将把管道的退出狀态作為傳回值.

# 事實上, 也不一定非要加上"exit $?", 因為在任何情況下,

# 腳本都會将最後一條指令的退出狀态作為傳回值.

=====測試

[email protected] ~/yang # ./zmore.sh grep.data.gz

48      Dec     3BC1977 LPSX    68.00   LVX2A   138

483     Sept    5AP1996 USP     65.00   LVX2C   189

47      Oct     3ZL1998 LPSX    43.00   KVM9D   512

219     dec     2CC1999 CAD     23.00   PLV2C   68

484     nov     7PL1996 CAD     49.00   PLV2C   234

483     may     5PA1998 USP     37.00   KVM9D   644

216     sept    3ZL1998 USP     86.00   KVM9E   234