【问题标题】:AWK/Bash script trying to parse some file namesAWK/Bash 脚本试图解析一些文件名
【发布时间】:2016-01-15 09:58:09
【问题描述】:

我正在尝试解析包含 1 或 2 行的“README”文件,这些行是“index”和/或“required”。它们后跟一个“:”分隔符和文件名,例如:

索引:index.html
必需:file2.1:file2.2

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

// 用于索引
awk -F":" 'NR==1{ for (i = 2; i > myfile }' myfile="$1/dir.xml" $1/README;

// 需要
awk -F":" 'NR==2{ for (i = 2; i > myfile }' myfile="$1/dir.xml" $1/README;

我的问题是,并非所有自述文件都包含索引行并且需要成为第一行,而我所需的脚本会查找第 2 行,有没有更好的方法来做到这一点?即使缺少索引行,我也需要我需要的部分来解析所需的部分。

【问题讨论】:

    标签: xml bash shell awk


    【解决方案1】:

    不是检查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
    

    【讨论】:

    • 谢谢!不敢相信我没有弄清楚那个哈。
    猜你喜欢
    • 1970-01-01
    • 2018-03-31
    • 2020-02-09
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多