• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > Shell脚本统计文件行数的8种方法

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

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了shell脚本读取文件,shell脚本创建文件,shell脚本删除文件,shell脚本写文件,shell脚本打开文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

获取单个文件行数

文件:test1.sh

行数:20

方法一
awk '{print NR}' test1.sh|tail -n1
</div>
如图所示:

方法二
awk 'END{print NR}' test1.sh
</div>
如图所示:

方法三
grep -n "" test1.sh|awk -F: '{print '}|tail -n1
</div>
如图所示:

方法四
sed -n '$=' test1.sh
</div>
如图所示:

方法五
wc -l test1.sh
</div>
如图所示:

方法六
#cat test1.sh |wc -l
</div>
如图所示:

获取特定目录所有文件的行数

代码如下:

#!/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"
</div>

使用方法:

1、针对本目录
./count.sh
</div>
2、统计多个目录
./count.sh /tmp ~
</div>
运行效果如下:

获取特定目录特定扩展名文件的行数
代码如下:
#!/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"
</div>

使用方法:

1、针对本目录
./count.sh
</div>
2、统计多个目录
./count.sh /tmp ~
</div>
运行效果如下:

好,就这些了,希

您可能想查找下面的文章:

  • Shell脚本切割tomcat的日志文件
  • Shell脚本实现根据文件的修改时间来分类文件
  • shell脚本实现实时检测文件变更
  • Shell脚本逐行读取文本文件(不改变文本格式)
  • Shell脚本一次读取文件中一行的2种写法
  • Shell脚本创建指定大小文件的测试数据
  • Shell脚本统计文件行数的8种方法
  • Shell脚本实现批量替换文件内容
  • Shell脚本实现删除一年前文件功能分享
  • Shell脚本实现删除一年前文件功能分享

相关文章

  • shell 脚本安装PHP扩展的简单方法
  • linux shell脚本学习xargs命令使用详解
  • 查找目录下同名但不同后缀名文件的shell脚本代码
  • Shell实现判断进程是否存在并重新启动脚本分享
  • Shell脚本查看网卡实时流量
  • 使用shell脚本采集系统cpu、内存、磁盘、网络等信息
  • linux Nginx 日志脚本
  • 把文件复制N份的2个Shell脚本代码
  • 又拍云存储同步脚本
  • Shell根据web日志计算平均连接时间功能

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Shell中实现飞行文字效果
    • Shell脚本实现的猜数字小游戏
    • Shell编程指南
    • Shell脚本编程中常用的数学运算实例
    • Bash的For循环(根据每次递增的数)
    • Linux下启动tomcat的方法
    • 输出执行操作和打印日志的shell脚本实例
    • 使用shell脚本采集系统cpu、内存、磁盘、网络等信息
    • Shell脚本实现C语言代码行数统计
    • linux patch 命令小结(收藏)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有