我正在处理这个文本文件,其中有数百行,看起来像下面的压缩版本:
# <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在每行的3941319690354688
和# 776547959
之间插入 dfpattern ,因为该文件可以手动完成大文件。
在16位数字模式之后和#
之前
即它看起来像这样:
# <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的新手,我无法想出摆弄的命令,所以我正在寻求帮助。 能否请您简要解释一下您发布的命令,以便我可以从中学习。 谢谢!
答案 0 :(得分: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