AWK / Bash脚本试图解析一些文件名

时间:2015-10-16 15:19:31

标签: xml bash shell awk

我试图解析一个包含1或2行的“README”文件,这些行是“索引”和/或“必需”。它们之后是“:”分隔符和文件名,例如:

指数:index.html的
required:file2.1:file2.2

解析索引和所需文件并将其放入xml文档中。因此,如果有索引行,我就会被创建,反之亦然。这是我的awk脚本:

//索引
awk -F“:”'NR == 1 {for(i = 2; i< = NF; i ++)print“”$ i“”>> myfile}'myfile =“$ 1 / dir.xml”$ 1 / README;

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

我的问题是,并非所有的自述文件都包含索引行,并且必须是第一行,并且我所需的脚本查找第2行,是否有更好的方法来执行此操作?即使缺少索引行,我也需要我需要的部分来解析所需的部分。

1 个答案:

答案 0 :(得分: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