2016-02-15 57 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