每日一则 Linux Shell命令

本文介绍了如何使用Shell脚本统计当前目录下所有Java文件的代码行数,并展示了如何利用sed命令实现字符串首字母大写的操作。此外,还提供了获取特定文件某一行内容的方法。
find . -iname '*.java' -exec wc -l {} \; | sort -n | cut --delimiter=. -f 1 | awk '{s+=$1}END{print s}'

find

.             查询当前目录

-iname              查询文件名,并忽略大小写

'*.java'               涉及到一点点正则,表示查询以".java"结尾的文件

-exec                  后跟command命令,并且以 【{} \;】结束({}与\;中间有空格);{}应该代表的是前面查找的结果

wc -l filename    打印filename文件中的行数

那么下面这行代码的意思就应该是,打印出该目录下每个java文件的代码行数

find . -iname '*.java' -exec wc -l {} \;

接下来:

sort -n            对前面的结果进行排序,按数字进行排序,更多排序规则参见 man sort

cut                  对字符串进行分割,默认分割符TAB,通过--delimiter来指定分割符,-f n 选项打印第n个字符

cut --delimiter=. -f 1

表达的意思是,以 . z作为分割符,并打印出第一个字符

awk是shell中比较强大的一个工具,会在以后专门讲一下

/*********************************************************************************/

字符串首字母大写

echo 'example' | sed -e 's/^\(.\)/\U\1/'

利用sed的查找和替换功能

sed 's/被替换的字符串/新的字符串/g'

其中被替换的字符串和新的字符串可以用正则表达式表示

^\(.\) 表示开头的一个字符并设为 组1 
\U\1    \U表示转换为大写字母,\1表示前面找到的 组1

/*********************************************************************************

打印文件第13行的信息

sed -n 13p camus.properties


转载于:https://my.oschina.net/u/2311898/blog/375934

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值