配出关键字sem的行内容,追加到下一个关键字sem前的行首

问题:

匹配出关键字sem的行内容,追加到下一个关键字sem前的行首

文本
sem 1234
point 23 33
point 25 aa
point 23 sd
point 19 fd
sem 5412
point 13 tt
point 12 oq
point 12 iw
sem 4513
point 142 iws
point 142 amx

效果

sem 1234 point 23 33
sem 1234 point 25 aa
sem 1234 point 23 sd
sem 1234 point 19 fd
sem 5412 point 13 tt
sem 5412 point 12 oq
sem 5412 point 12 iw
sem 4513 point 142 iws
sem 4513 point 142 amx

解答:

awk ‘!/^sem/{print a,$0}/^sem/{a=$0}‘ file

sem 1234 point 23 33

sem 1234 point 25 aa

sem 1234 point 23 sd

sem 1234 point 19 fd

sem 5412 point 13 tt

sem 5412 point 12 oq

sem 5412 point 12 iw

sem 4513 point 142 iws

sem 4513 point 142 amx

时间: 2024-10-30 08:52:18

配出关键字sem的行内容,追加到下一个关键字sem前的行首的相关文章

notepad++删除某关键字所在的行内容

例如,我要删除zhao这个字符串所在的行 打开notepad++的ctrl+f窗口 点击替换选项,在查找目标输入^.*bp.*$ 其中替换为那里留空,查找模式选择正则表达式,建议也勾选匹配大小写,同时将箭头放置在文首 点击全部替换后 原文地址:https://www.cnblogs.com/biaopei/p/10907757.html

查找目录下的关键字以及显示行数

1 import os 2 def print_pos(key_dict): 3 keys = key_dict.keys() 4 keys = sorted(keys) # 由于字典是无序的,我们这里对行数进行排序 5 for each_key in keys: 6 print('关键字出现在第 %s 行,第 %s 个位置.' % (each_key, str(key_dict[each_key]))) 7 8 def pos_in_line(line, key): 9 pos = [] 10

关于SQL Server将一列的多行内容拼接成一行的问题讨论(转载)

说明:本文仅供分享,版权属于原作者. 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA           

关于SQL Server将一列的多行内容拼接成一行的问题讨论

昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA             企业1,企业2,企业3 BBB  

EmEdit选择多行内容

EmEdit是个非常好的软件,功能非常齐全,而且G级别文件轻易可打开. 作者经常使用文本需要选中几万行的数据,如果用鼠标下拉非常耗费时间下面说个我研究出来的方法. 举例,现在有个1000行当文本,我只需要里面500-800行内容. 操作方法一: 鼠标点击到500行开头. 按Ctrl+F8 滚动右侧滚条到调到第800行,鼠标点击第800行,即可选中这300行当区间. 如果你的行数比较大几十万或几百万行. 操作方法二: 鼠标点击到500行开头. 按Ctrl+F8 按Ctrl+G,后输入你要跳转到的行

SQL Server将一列的多行内容拼接成一行

昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA             企业1,企业2,企业3 BBB  

采用cat与EOF组合添加多行内容防止变量解析的解决办法

[问题描述] 当采用cat与EOF组合添加多行内容时,若含有变量,则追加后的文件中是变量对应的的值,并不是变量本身. 如$a对应的值为111,执行以下命令后 cat >> /etc/profile << EOF $a $a EOF /etc/profile文件中最后两行内容为111与111,而不是我们所期望的$a与$a. [解决办法] 此问题也非常容易解决,只需在所有的$符号前面加一个转义"\"就可以了

仅通过崩溃地址找出源代码的出错行

作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?--错啦!我相信我的看法是不会有人反对的--那就是,程序发生了崩溃! "该程序执行了非法操作,即将关闭.请与你的软件供应商联系.",呵呵,这句 M$ 的"名言",恐怕就是程序员最担心见到的东西了.有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了:有时自己在编写和测试的过程中就莫名其妙地遇到了非法操作,但是却无法确定到底是源代码中的哪行引起的--是不是很痛苦呢?不要紧,本

总结vim,find的出高级用法和bash内容以及磁盘管理和文件系统的知识

LINUX 中的vim 操作 vim在linux中是一款功能强大的编辑利器.vim分为三种模式:1编辑模式,2插入模式,3末行模式. 1.1:编辑模式. i:insert 插入编辑光标停留的第一个字符. a:append 追加到光标的第二个字符. o:new line 新建一空白行,往光标下一行新建. I:行首. A:行末. O:光标上方新建空白行. 输入模式 按ES====>编辑模式. 编辑模式按':'=====>进入末行模式. 末行模式按ESC======>编辑模式. 1.2 打开文