每日一則 Linux Shell命令

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
相關文章
相關標籤/搜索