linux文本添加,linux – 使用SED添加文本

我正在处理一项任务,在Unix中操作文本,但我不知道我将如何做.我打算用sed.这是我想做的事.

我有这个文字.

BS111

xxxxx

yyyyy

zzzzz

BS112

xxxxx

yyyyy

zzzzz

BS113

xxxxx

yyyyy

zzzzz

so on.. with this kind of format

我希望它像:

BS111 xxxxx

BS111 yyyyy

BS111 zzzzz

BS112 xxxxx

BS112 yyyyy

BS112 zzzzz

BS113 xxxxx

BS113 yyyyy

BS113 zzzzz

so on.. with this kind of format

BS *及其数据几乎发生了数百次.所以我认为最好的方法是使用脚本.预先感谢您的帮助.

解决方法:

试试awk

awk’/ ^ BS / {i = $0; next;} {if(length($0))printf(“%s”,i); print $0}’< filename>

更新:

“/ ^ BS / {I = $0; next;} {if(length($0))printf(“%s”,i);打印$0}’记住,在awk中,{…}表示一组动作. / pattern / {…}表示如果找到模式,请执行{…}操作.

/ ^ BS [0-9] /将在每一行中搜索模式.如果找到模式,i(awk中的变量)将使用模式更新($0是完整行),接下来将立即移动到下一行.如果{if(…}中的下一组操作将被跳过,如果找到一个模式.所以我将始终包含最后一个模式值,如果一行包含模式,除了更新i之外,该行的下一组动作将不会发生.

下一组操作是if(length($0))if,该行包含text,printf(“%s”,i);打印最后找到的模式,然后打印$0prints原始行.因此,对于空行,只打印一个空行,如果有一些文本,则首先打印theiorlast found pattern,然后打印原始行.顺便说一下,sputnick的解决方案也在做同样的事情,只是以更紧凑的形式.所以你也可以解剖那个也是为了好玩.希望我很清楚,请随时询问您需要知道的任何事情

标签:linux,sed,unix

来源: https://codeday.me/bug/20190723/1509729.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值