2013-03-08 22 views
0

我正在嘗試自動執行獲取目錄中文件列表的sloccount並將它們放入文本文件的過程。我需要爲多個目錄執行此操作。 目的是 '的grep'=符號使用sloccount和grep獲取SLOC後= =符號

Total Physical Source Lines of Code (SLOC)    = 6,392 

因此後發現SLOC遠我有:

#!/bin/bash 

for file in dir/*; do echo $file; 
sloc=`sloccount $file | grep $file`; 
echo $file $sloc >> 'activesloc.txt'; 
done; 

或者從終端我得到的輸出,使用:

sloccount ponkout | grep "ponkout" 

Creating filelist for ponkout 
6392 ponkout  java=6392 

回答

1

也許你可以用cut從行上得到6,392

$ TEXT="Total Physical Source Lines of Code (SLOC)    = 6,392" 
$ echo $TEXT | cut -d= -f2 
6,392 

-d=指示分隔符是=-f2您將打印第二條記錄。

而且這個awk使它:

$ echo $TEXT | awk -F= '{print $2}' 
6,392 
+0

怎麼那麼,如果我這樣做了全文件的目錄? – 2013-03-08 16:52:59

+0

感謝@chepner的編輯,我總是犯這個錯誤:) – fedorqui 2013-03-08 16:54:36

+0

你也可以使用參數擴展:'echo $ {TEXT#* =}'。 – chepner 2013-03-08 16:55:03