find . -iname '*.java' -exec wc -l {} \; | sort -n | cut --delimiter=. -f 1 | awk '{s+=$1}END{print s}'
findjava
. 查詢當前目錄正則表達式
-iname 查詢文件名,並忽略大小寫shell
'*.java' 涉及到一點點正則,表示查詢以".java"結尾的文件工具
-exec 後跟command命令,而且以 【{} \;】結束({}與\;中間有空格);{}應該表明的是前面查找的結果spa
wc -l filename 打印filename文件中的行數code
那麼下面這行代碼的意思就應該是,打印出該目錄下每一個java文件的代碼行數排序
find . -iname '*.java' -exec wc -l {} \;
接下來:字符串
sort -n 對前面的結果進行排序,按數字進行排序,更多排序規則參見 man sortit
cut 對字符串進行分割,默認分割符TAB,經過--delimiter來指定分割符,-f n 選項打印第n個字符
class
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