Shell指令碼統計檔案行數的8種方法

2021-07-02 14:05:07 字數 3180 閱讀 9115

方法一

awk '' test1.sh|tail -n1

示例:

[root@adiislogdata164 test]# ls

front_action.log.2015-05-13-00.log

[root@adiislogdata164 test]# awk '' front_action.log.2015-05-13-00.log | tail -n1

273736

[root@adiislogdata164 test]#

方法二

awk 'end' test1.sh

示例:

[root@adiislogdata164 test]# ls

front_action.log.2015-05-13-00.log

[root@adiislogdata164 test]# awk 'end' front_action.log.2015-05-13-00.log

273736

[root@adiislogdata164 test]#

方法三

grep -n "" test1.sh|awk -f: '|tail -n1

示例:

[root@adiislogdata164 test]# grep -n "" front_action.log.2015-05-13-00.log|awk -f: '|tail -n1

273736:2015-05-13 00:59:59|@183.31.247.46|@15b55bbd-df33-4a64-9838-44ffd34a23f3|@176|@1|@44|@58|@1-39|@cn020_0756_[gd_zh]|@ent.ifeng.com|@0|@0

[root@adiislogdata164 test]#

方法四

sed -n '$=' test1.sh

示例:

[root@adiislogdata164 test]# ls

front_action.log.2015-05-13-00.log

[root@adiislogdata164 test]# sed -n '$=' front_action.log.2015-05-13-00.log

273736

[root@adiislogdata164 test]#

方法五wc -l test1.sh

示例:

[root@adiislogdata164 test]# ls

front_action.log.2015-05-13-00.log

[root@adiislogdata164 test]# wc -l front_action.log.2015-05-13-00.log

273736 front_action.log.2015-05-13-00.log

[root@adiislogdata164 test]#

方法六

cat test1.sh |wc -l

示例:

[root@adiislogdata164 test]# ls

front_action.log.2015-05-13-00.log

[root@adiislogdata164 test]# cat front_action.log.2015-05-13-00.log | wc -l

273736

[root@adiislogdata164 test]#

七、獲取特定目錄所有檔案的行數

#!/bin/bash

filescount=0

linescount=0

function funcount()

if [ $# -gt 0 ];then

for m_dir in $@

dofuncount $m_dir

done

else

funcount "."

fiecho "filescount = $filescount"

echo "linescount = $linescount"

使用方法:

1)針對本目錄

./count.sh

2)統計多個目錄

./count.sh /tmp ~

示例:

八、獲取特定目錄特定副檔名檔案的行數

#!/bin/bash

extens=(".c" ".cpp" ".h" ".hpp")

filescount=0

linescount=0

function funcount()

echo "filename = $filename extension = $extension"

if [[ "$" != "$" ]];then

declare -i filelines

filelines=`sed -n '$=' $filename`

echo $filename" : "$filelines

let linescount=$linescount+$filelines

let filescount=$filescount+1

fifi

done

}if [ $# -gt 0 ];then

for m_dir in $@

dofuncount $m_dir

done

else

funcount "."

fiecho "filescount = $filescount"

echo "linescount = $linescount"

使用方法:

1、針對本目錄

./count.sh

2、統計多個目錄

./count.sh /tmp ~

示例:

Shell 指令碼統計檔案行數

示例 row count.s 件 awk row count.sh tail n1 awk end row count.sh grep n row count.sh awk f tail n1 sed n row count.sh wc l row count.sh cat row count.sh...

Shell指令碼統計檔案行數的8種方法

這篇文章主要介紹了shell指令碼統計檔案行數的8種方法,本文講解了獲取單個檔案行數 獲取特定目錄所有檔案的行數兩種需求共計8種方法,需要的朋友可以參考下 獲取單個檔案行數 檔案 test1.sh 行數 20 方法一 複製 如下 awk test1.sh tail n1 如圖所示 方法二 複製 如下...

Linux統計檔案行數

語法 wc 選項 檔案 說明 該命令統計給定檔案中的位元組數 字數 行數。如果沒有給出檔名,則從標準輸入讀取。wc同時也給出所有指定檔案的 計數。字是由空格字元區分開的最大字串。該命令各選項含義如下 c 統計位元組數。l 統計行數。w 統計字數。這些選項可以組合使用。輸出列的順序和數目不受選項的順序...