在 shell 中将前缀添加到它之前的行
Add prefix to a line from the line before it in shell
我正在执行以下命令以从其上方的行中获取必须添加前缀的行,如下所示:
grep -B1 "^E[0-9]"
我得到如下信息:
ENSG00000165661:E5.1
E6.1
--
ENSG00000174776:E7.1
E8.1
--
ENSG00000122482:E7.2
E8.1
如何为以 E[字母数字] 开头的行添加前缀,使文件变为
ENSG00000165661:E5.1
ENSG00000165661:E6.1
ENSG00000174776:E7.1
ENSG00000174776:E8.1
ENSG00000122482:E7.2
ENSG00000122482:E8.1
awk
救援!
awk -F: '/^E[0-9]/{print p0; print p1 FS [=10=]} {p1=; p0=[=10=]}' file
未测试,因为没有可测试的数据
说明
当模式匹配时打印存储在变量p0
中的前一行;然后打印上一行的第一个字段(p1
)、字段分隔符(FS
)和当前行([=15=]
)。下一条语句将为每一行设置 p0
和 p1
变量,无论是否使用它,因为没有前瞻性。
我正在执行以下命令以从其上方的行中获取必须添加前缀的行,如下所示:
grep -B1 "^E[0-9]"
我得到如下信息:
ENSG00000165661:E5.1
E6.1
--
ENSG00000174776:E7.1
E8.1
--
ENSG00000122482:E7.2
E8.1
如何为以 E[字母数字] 开头的行添加前缀,使文件变为
ENSG00000165661:E5.1
ENSG00000165661:E6.1
ENSG00000174776:E7.1
ENSG00000174776:E8.1
ENSG00000122482:E7.2
ENSG00000122482:E8.1
awk
救援!
awk -F: '/^E[0-9]/{print p0; print p1 FS [=10=]} {p1=; p0=[=10=]}' file
未测试,因为没有可测试的数据
说明
当模式匹配时打印存储在变量p0
中的前一行;然后打印上一行的第一个字段(p1
)、字段分隔符(FS
)和当前行([=15=]
)。下一条语句将为每一行设置 p0
和 p1
变量,无论是否使用它,因为没有前瞻性。