源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Shell脚本统计文件行数的8种方法

  • 时间:2021-12-17 13:12 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Shell脚本统计文件行数的8种方法
[b]获取单个文件行数[/b] 文件:test1.sh 行数:20 [b]方法一 [/b]
[u]复制代码[/u] 代码如下:
awk '{print NR}' test1.sh|tail -n1
如图所示: [img]http://files.jb51.net/file_images/article/201503/201531095712345.png?201521095719[/img] [b]方法二 [/b]
[u]复制代码[/u] 代码如下:
awk 'END{print NR}' test1.sh
如图所示: [img]http://files.jb51.net/file_images/article/201503/201531095820442.png?201521095846[/img] [b]方法三 [/b]
[u]复制代码[/u] 代码如下:
grep -n "" test1.sh|awk -F: '{print '}|tail -n1
如图所示: [img]http://files.jb51.net/file_images/article/201503/201531095859435.png?20152109596[/img] [b]方法四 [/b]
[u]复制代码[/u] 代码如下:
sed -n '$=' test1.sh
如图所示: [img]http://files.jb51.net/file_images/article/201503/201531095916641.png?201521095923[/img] [b]方法五 [/b]
[u]复制代码[/u] 代码如下:
wc -l test1.sh
如图所示: [img]http://files.jb51.net/file_images/article/201503/201531095933170.png?201521095942[/img] [b]方法六 [/b]
[u]复制代码[/u] 代码如下:
#cat test1.sh |wc -l
如图所示: [img]http://files.jb51.net/file_images/article/201503/201531095949781.png?201521095955[/img] [b]获取特定目录所有文件的行数[/b] 代码如下:
[u]复制代码[/u] 代码如下:
#!/bin/bash filesCount=0 linesCount=0 function funCount() {     for file in ` ls $1 `     do         if [ -d $1"/"$file ];then             funCount $1"/"$file         else             declare -i fileLines             fileLines=`sed -n '$=' $1"/"$file`             let linesCount=$linesCount+$fileLines             let filesCount=$filesCount+1         fi     done } if [ $# -gt 0 ];then     for m_dir in $@     do         funCount $m_dir     done else     funCount "." fi echo "filesCount = $filesCount" echo "linesCount = $linesCount"
使用方法: 1、针对本目录
[u]复制代码[/u] 代码如下:
./count.sh
2、统计多个目录
[u]复制代码[/u] 代码如下:
./count.sh /tmp ~
运行效果如下: [img]http://files.jb51.net/file_images/article/201503/2015310100002233.png?201521010014[/img] 获取特定目录特定扩展名文件的行数 代码如下:
[u]复制代码[/u] 代码如下:
#!/bin/bash extens=(".c" ".cpp" ".h" ".hpp") filesCount=0 linesCount=0 function funCount() {     for file in ` ls $1 `     do         if [ -d $1"/"$file ];then             funCount $1"/"$file         else             fileName=$1"/"$file                         EXTENSION="."${fileName##*.}             echo "fileName = $fileName  Extension = $EXTENSION"             if [[ "${extens[@]/$EXTENSION/}" != "${extens[@]}" ]];then                 declare -i fileLines                 fileLines=`sed -n '$=' $fileName`                 echo $fileName" : "$fileLines                 let linesCount=$linesCount+$fileLines                 let filesCount=$filesCount+1             fi         fi     done } if [ $# -gt 0 ];then     for m_dir in $@     do         funCount $m_dir     done else     funCount "." fi echo "filesCount = $filesCount" echo "linesCount = $linesCount"
使用方法: 1、针对本目录
[u]复制代码[/u] 代码如下:
./count.sh
2、统计多个目录
[u]复制代码[/u] 代码如下:
./count.sh /tmp ~
运行效果如下: [img]http://files.jb51.net/file_images/article/201503/2015310100028584.png?201521010035[/img] 好,就这些了,希望对你有帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部