【问题标题】:Yank and hold first line; copy hold space to pattern space using SED猛拉并保持第一行;使用 SED 将保持空间复制到模式空间
【发布时间】:2018-08-04 18:13:34
【问题描述】:

我正在尝试使用hG 抽出文件中的第一行,然后将文本粘贴到所有其他行末尾的模式空间。

输入:

01JAN2018
00:00-00:15    0.00     DATE 
00:30-00:45    0.00     DATE

输出:

00:00-00:15    0.00     01JAN2018
00:30-00:45    0.00     01JAN2018

任何帮助将不胜感激。

【问题讨论】:

  • 完美的极简主义定义!但请编辑您的 Q 以包含您解决问题的最佳尝试。听起来你很接近。祝你好运。

标签: sed


【解决方案1】:

试试这个:

sed '1h;1d;2,${G;s/DATE\s*//}'

说明

1h - 保留第一行

1d - 不打印第一行

2,$... - 从第二行到结尾

G - 加入第一行和模式(当前)行

s/DATE\s*/// - 删除日期、空格和换行符

【讨论】:

  • 不需要范围或大括号,因为第一行之后每隔一行都在2,$范围内。
  • 它确实替换了Date,但输出显示了下一行的日期,而不是放在其他数据的右侧。如何将日期保持在同一行,使其看起来像我的问题中的示例?谢谢。
  • @potong - 是否意味着不需要大括号中的所有内容?还是您的意思是自己删除大括号并保留所有内容?
  • @985ranch sed '1h;1d;G;s/DATE\s*//' file 就足够了。 1d 终止对第 1 行的任何进一步处理。
猜你喜欢
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
相关资源
最近更新 更多