2

我正在处理这个包含数百行的文本文件,看起来像下面的精简版本:

# <block_uid>   # <freq> <memop> <fpop> <insn> <line> <fname> <perc>
3941319690354688    # 776547959  2.232946   0
3941427129090048    # 465293088 40  37  74 4.215079 0 
3941427110739968    # 465558912 36  35  68

我正在尝试使用 sed在每行之间和每行上插入dfpattern ,因为文件太大需要手动完成。所以在 16 位模式之后和 ie 之前它看起来像这样:3941319690354688# 776547959#

# <block_uid>   # <freq> <memop> <fpop> <insn> <line> <fname> <perc>
3941319690354688 dfpattern  # 776547959  2.232946   0
3941427129090048 dfpattern  # 465293088 40  37  74 4.215079 0
3941427110739968 dfpattern  # 465558912 36  35  68

我是 sed 的新手,我无法想出摆弄的命令,所以我正在寻求帮助。您能否简要解释一下您发布的命令,以便我从中学习。谢谢你!

4

1 回答 1

1

尝试以下命令。它从行首 ( ^) 开始匹配任意数量的数字,后跟具有相同内容的空格 ( ) 并附加\1文字。dfpattern

sed -e 's/^\([0-9]*[ ]\)/\1dfpattern /' infile

输出:

# <block_uid>   # <freq> <memop> <fpop> <insn> <line> <fname> <perc>
3941319690354688 dfpattern    # 776547959  2.232946   0
3941427129090048 dfpattern    # 465293088 40  37  74 4.215079 0 
3941427110739968 dfpattern    # 465558912 36  35  68
于 2012-07-11T18:43:39.480 回答