linux - sed 用文件分隔符替换文本
问题描述
我的文件有多个这样的列
A B C (jan) D E F (feb) G (mar) H
(即 A 和 B、B 和 C、(jan) 和 D 之间有制表符,但 C 和 (jan) 之间有一个空格。我只想用下划线替换那些空格。
所以,输出会像
A B C_(jan) D E F_(feb) G_(mar) H
任何意见?
解决方案
只需删除括号(替换为空格以保持位置不变)
$ sed 's/[()]/ /g' file
A B C jan D E F feb G mar H
也删除内容
$ sed -E 's/\([^)]+\)//g' file
A B C D E F G H
不清楚你问了什么。
仍然不清楚您想要什么,您说要删除括号,但示例显示了它们。
这里还有两个变体
$ sed -E 's/ (\([^)]+\))/_\1/g' file
A B C_(jan) D E F_(feb) G_(mar) H
$ sed -E 's/ \(([^)]+)\)/_\1/g' file
A B C_jan D E F_feb G_mar H
推荐阅读
- node.js - 使用 Socket.io 从客户端向服务器发送消息数据是否可靠
- javascript - 动态组件内的自定义组件未初始化
- mysql - 选择关联表的所有行的数量并加入这些行。MySQL
- python - 检查 3D 点是否在基于正方形的金字塔中
- r - 如何在 r 中建立状态空间模型:将时变参数与 GARCH-M 模型相结合
- xslt - 有没有办法在 XSL 1.0 模板中使用 for 循环在以下场景中打印金额?
- blazor - 在自定义组件中包装 MudBlazor 组件 - @bind-Value 的问题
- python - 如何使用 lxml 解析 pymupdf 的 xml 提取?
- javascript - Accept.js 来自 Authorize.net 实现
- sharepoint - 从 SharePoint 格式的列调用即时流