【发布时间】:2014-12-18 23:02:03
【问题描述】:
我是 sed 和 awk 的新手。因此,我不确定该特定任务使用哪一个(或者即使使用正确)。这是我想做的:
我有一个文件,其中包含由“|”分隔的数据行。它看起来像这样:
ln1: |a=1|b=5|d=77|h=2222|
ln2: |c=9|b=21|g=0.00001|a=3|k="helloworld"|h=101|
.....
现在每行可以有不同数量的字段,并且字段可能不会以相同的顺序出现。
我想编写一个脚本来根据字段的 ID 提取字段。所以假设我想要以“a=”和“h=”以及“g=”开头的字段(如果“g=”字段存在),脚本将打印出来
ln1:|a=1|h=2222|
ln2:|a=3|h=101|g=0.00001|
非常感谢大家!
【问题讨论】:
-
是以
ln1:开头的行吗?它们也是以|分隔符开头的吗? -
grep 呢?
grep -E "^\|[ahg]=" filename? -
行不以
ln1:开头,它们确实以|开头,但我可以轻松更改!