首页 > 其他分享 >用bash脚本统计代码行数

用bash脚本统计代码行数

时间:2022-10-22 22:36:19浏览次数:49  
标签:脚本 funCount test1 filesCount 代码 sh linesCount file bash

获取单个文件行数

文件:test1.sh

行数:20

方法一

awk '{print NR}' test1.sh|tail -n1

如图所示:

方法二

awk 'END{print NR}' test1.sh

如图所示:

方法三

grep -n "" test1.sh|awk -F: '{print '}|tail -n1

如图所示:

方法四

sed -n '$=' test1.sh

如图所示:

方法五

wc -l test1.sh

如图所示:

方法六

#cat test1.sh |wc -l

如图所示:

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

代码如下:

复制代码
#!/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、针对本目录

./count.sh

2、统计多个目录

./count.sh /tmp ~

运行效果如下:

获取特定目录特定扩展名文件的行数

代码如下:

复制代码
#!/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、针对本目录

./count.sh

2、统计多个目录

./count.sh /tmp ~

运行效果如下:

好,就这些了,希望对你有帮助。

 

出处:https://www.cnblogs.com/MikeZhang/archive/2012/08/22/linesCountBash20120822.html

标签:脚本,funCount,test1,filesCount,代码,sh,linesCount,file,bash
From: https://www.cnblogs.com/mq0036/p/16817471.html

相关文章

  • 代码杂侩
    特征图可视化importtorchimporttorch.nnasnnfromPILimportImageimportnumpyasnpfromtorchvisionimporttransformsimportmatplotlib.pyplotasplt#i......
  • Visual Studio (VS2017)提交代码到Git服务器流程(GitCode)
    一、前言Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。有了Git之后团队协作,版本控制都非常方便。场景:(1)版本管理。Git提供了版本......
  • Linux执行jsp命令的时候报错:-bash: jps: command not found
    前言:在zookeeper学习的时候,执行jsp命令查看zookpper运行状态的时候发现报错:-bash:jps:commandnotfound翻阅了一大批文章,不是东拼西凑,就是缺斤少两,于是乎,本人萌生了......
  • 使用Shell脚本进行条件测试
    使用Shell脚本进行条件测试......
  • 使用同步代码块解决线程安全问题
    使用同步代码块解决线程安全问题packageA_ShangGuiGu.Thread.ThreadDemo;​/***例子:三个窗口买票,使用实现Runnable接口的方法。*1.出现的问题:卖票过程中出现了重票,错......
  • html模板每行代码的意思
      1     <>单标签  一般用于声明属性     2     <></>双标签决定范围(<html></html>表明了html文件的范围) 3      <h......
  • 代码复现:Copy-Paste 数据增强for语义分割
    一、前言前些天分享了一篇谷歌的数据增强论文,解读在这:https://www.cnblogs.com/tangjielin/p/16812816.html。可能由于方法比较简单,官方没有开源代码,于是,我自己尝试在语......
  • 防止电脑锁屏小脚本
    防止电脑锁屏小脚本  运行环境:java环境。使用方式:当前目录下:java-jarrobot.jar 提取地址:链接:https://pan.baidu.com/s/1tHw0W_JN89GHlLYprsc0-g?pwd=6......
  • shell脚本之条件语句
    一、test命令1、格式测试表达式是否成立,若成功返回0,否则返回其他数值格式1:test条件表达式格式2:[条件表达式]二、文件测试1、格式操作符、文件名或者......
  • 博客园主题样式 代码
    博客样式设置代码地址主题样式代码gitEE仓库仓库地址https://gitee.com/esofar/cnblogs-theme-silence感谢!@esofar......