【发布时间】:2020-06-16 17:16:08
【问题描述】:
有一个如下所示的数据集,用 (:) 冒号分隔:
##L1
Advc:start:TA_Wk;TA_Wk:rstb:ver:trstb.techind_C3_D[0].RESETH:LK
##L2
ner:ted:Unused:C1500:ver:sync3rmsfd0nt_t;tape_out:SOCK0
我正在使用列号,并使用 AWK 将一些字符串附加到它。 我试图忽略遇到的评论#并最后附加它们。
#!/bin/bash
awk -F: '/^#/ {c=$0; sub(/#+/,"", c); next}
{print $1, "-f" " "$4, "-t" " "$6, "-d" " ""{"$3"}", "-t" " ""{"$7"}","-", "\"" c "\""}' s1
输出:
Advc -f rstb -t trstb.techind_C3_D[0].RESETH -d {TA_Wk;TA_Wk} -t {LK} - "L1"
-f -t -c {} -c {} - "L1"
ner -f C1500 -t sync3rmsfd0nt_t;tape_out -d {Unused} -t {SOCK0} - "L2"
期望的输出:
Advc -f rstb -t trstb.techind_C3_D[0].RESETH -d {TA_Wk;TA_Wk} -t {LK} - "L1"
ner -f C1500 -t sync3rmsfd0nt_t;tape_out -d {Unused} -t {SOCK0} - "L2"
1.在第 3 列和第 7 列中,如果诸如“未使用”、“未指定”之类的词是“未使用”、“未指定”,那么它不应该打印它应该忽略的特定列以及附加到它的字符串,如所需输出中所示。
2.如何删除空行。
如上所示,如何在我的代码中修复以上两个条件?
【问题讨论】:
标签: awk