2016-02-15 53 views
2

我有一個文件原始的VOB,配置規格,其中有兩條線如何讓行只有一個一次出現在文件中

element /vob/ccm_tpl/repository/open_source/ciscossl_fom/4_1/... TPLBASE 
element /vob/ccm_tpl/repository/open_source/ciscossl/1_0_2d_5_4/... VERSION_04 

我有我的代碼:

OLD_VERSION=`grep "ciscossl" raw-vobs-config-spec | cut -d " " -f2 | awk -F "/" '{ print $(NF-1)}'` 
echo $OLD_VERSION 
total_fields=`grep "ciscossl" raw-vobs-config-spec | cut -d " " -f2 | awk -F "/" '{ print NF }'` 
echo $total_fields 
#directory_path=`grep "ciscossl" raw-vobs-config-spec | cut -d " " -f2 | cut -d"/" -f1-"${total_fields}"` 
#echo $directory_path 
loc=`grep "ciscossl" raw-vobs-config-spec_new | cut -d " " -f2 | cut -d"/" -f1-6` 
echo $loc 

因此它是印刷O/p作爲

4_1 1_0_2d_5_4 
8 8 
/vob/ccm_tpl/repository/open_source/ciscossl_fom 
/vob/ccm_tpl/repository/open_source/ciscossl 

,但我需要的輸出作爲

4_1 
8 
/vob/ccm_tpl/repository/open_source/ciscossl_fom 

我怎麼能得到這個?

回答

0

您可以使用readwhile環先閱讀只是一條線,然後用awk處理讀取文本:

# read one line from input file 
read _ line _ < raw-vobs-config-spec 

# process the line with awk 
echo "$line" | awk 'BEGIN{FS=OFS="/"} {print $(NF-1) ORS NF; NF-=2; print}' 

輸出:

4_1 
8 
/vob/ccm_tpl/repository/open_source/ciscossl_fom 
+0

我傳遞兩個目錄在我腳本一是ciscossl,另一個是cisossl_fom ...所以我需要兩個不同的目錄輸出4_1/vob/ciscossl和1_0_2d_5_4的ccm_tpl/repository/open_source/ciscossl_fom 8/vob/ccm_tpl/repository/open_source/ciscossl如果我通過ciscossl ...我怎麼能得到這個 – panda

+0

這個輸出與您所期望的輸出相匹配。爲了增加額外的需求,評論是不正確的。我建議你開一個新的問題,你一定會得到幫助。 – anubhava