我试图解析一个包含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行,是否有更好的方法来执行此操作?即使缺少索引行,我也需要我需要的部分来解析所需的部分。
答案 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