本文用到的Shell命令:
- grep
- find
- wc
- xargs
- sort
用grep匹配文件内容
1 | # 这条命令会把index.js内容全部输出来,因为每行都匹配 |
用wc统计行数
1 | # 通过管道将内容传递给wc,统计js代码行数 |
使用find过滤文件
1 | # 使用find列出所有扩展名为m和h的文件,通过管道和xargs传递给grep,然后统计代码行数 |
xargs的作用:
- xargs把find输出的内容转换为命令行参数传递给grep。例如find输出的内容是
main.js \n test.js,则find输出的每一行(即每个文件)都会调用一次grep,也就是grep main.js,grep test.js,输出每个文件中匹配的内容,最后由wc计算总行数。 - 如果不用xargs,grep会把find输出的文件列表当做要搜索的内容,最后统计的是文件列表的行数(只会调用一次grep),也就是文件的个数。
直接用find统计行数
直接用find也可以统计行数,但是只能统计文件中所有内容(包括空行)的行数,没有用grep那么灵活。
1 | # 统计每个文件的行数和总行数,包含空行 |
如果觉得文章有帮助,欢迎分享转发,也欢迎关注我的公众号“搬砖的小明”,及时获取更新