2015-10-16 62 views
1

我想解析一個包含1或2行的「自述文件」,這些行可以是「索引」和/或「需要」。緊隨其後的是一個「:」分隔符和文件名,例如:AWK/Bash腳本試圖解析一些文件名

指數:index.html的
要求:file2.1:file2.2

指數和所需文件被解析並放入xml文檔。因此,如果有索引行,則需要創建,反之亦然。這是我的AWK腳本:

//用於索引
AWK -F 「:」「NR == 1 {對於(I = 2;我< = NF;我++)打印 「 」$ i「 的」 >> myfile}'myfile =「$ 1/dir.xml」$ 1/README;

//所需
AWK -F 「:」 'NR == 2 {對於(ⅰ= 2;我< = NF;我++)打印 「 」$ i「 的」 >> MYFILE}' MYFILE =」 $ 1/dir.xml「$ 1/README;

我的問題是,不是所有的自述文件都包含一個索引行,並且導致需要第一行,並且我的必需腳本查找第2行,有沒有更好的方法來做到這一點?即使索引行缺失,我也需要解析所需的部分。

回答

2

而不是NR==1檢查值在第一場類似這樣的檢查:

awk -F":" '$1 == "index"{ 
    for (i = 2; i <= NF; i++) print " "$i"" >> myfile }' myfile="$1/dir.xml" $1/README 

awk -F":" '$1 == "required"{ 
    for (i = 2; i <= NF; i++) print " "$i"" >> myfile }' myfile="$1/dir.xml" $1/README 
+1

謝謝!不能相信我沒有指出這一個哈哈。 –