小编Syl*_*l33的帖子

如何删除位于 2 个模式之间的每条记录的数据之间的换行符?

我有一个大文件要解析和重新格式化,最好使用sed(在 bash 下)。该文件包含以 开头PATTERN_START和结尾的重复序列PATTERN_END。这些序列与我必须保持不变的其他文本混合在一起。在序列中,有几条记录(编号从 1 到n,其中n可以是从 1 到 12)。记录是一组以 形式的行开头的行,其中i是 1 和n之间的整数,并以另一个这样的行 ( ) 或一行结束。记录的长度可以从 1 行到 30 行。Record iRecord (i+1)PATTERN_END

这是输入文件的通用表示:

不相关的数据          (可能有很多行)                       ?
PATTERN_START |
记录 1 ? |
记录 1 的数据(最多 30 行)    ?| |  (多次重复) 
      ? ? |  (最多 12 条记录)     |
记录 2 | |
记录 2 的数据                       ?? |
模式_END?
不相关的数据          (可能有很多行)

因此,我希望,仅对于位于PATTERN_START和之间的记录 …

sed

5
推荐指数
2
解决办法
3056
查看次数

用 3 行滑动窗口替代 sed

我需要使用 Sed 实现一个 3 行滑动窗口,以便更改大文本文件中以下 3 个分组行的任何出现:

Fax: 05.11.22.33.44<LF>
<LF>
<LF>
Run Code Online (Sandbox Code Playgroud)

有了这个 :

Fax: 05.11.22.33.44<LF>
###
<LF>
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令行(在 msdos 批处理文件中运行 sed,但在我的 linux bash 下它不起作用):

sed -i ":a;$!N;s/\nFax: \([ 0-9\.]*\n\n\);tenough;$!ba;:enough/\nFax: \1###\n/;$!ba;P;D" file.txt
Run Code Online (Sandbox Code Playgroud)

怎么了 ?

sed

5
推荐指数
1
解决办法
754
查看次数

标签 统计

sed ×2