sed - 如何使用新行进行 BSD sed 替换
问题描述
我有一个 sed 命令如下:
sed -i 's/),(/),\n(/g' myfile
我的文件是这样的:
(237),(238)
预期结果是:
(237),
(238)
实际结果是:
(237),n(238)
我尝试了很多写新行的方法,但都失败了。是否有可能得到预期的结果?
我发现这GNU sed
行得通,但BSD sed
不是。
解决方案
对于BSD sed
,我们可以将换行写成$'\n'
,所以命令应该是:
/usr/bin/sed 's/),(/),\'$'\n''(/g' myfile
推荐阅读
- sql - 从多个子查询返回一行作为结果
- javascript - 以编程方式调用输入的更改事件
- r - 如果行号等于给定值,则从列返回值
- php - 在 PHP 上显示特定表列中的 MySQL 行内容(不同表上的相同 .row 名称)
- android-studio - 设计选项卡在 Android Studio 中不可见
- regex - 如何替换 bash 正则表达式中的扩展名?
- c - 减去两个指针(数组),(C语言)
- bash - 计算距离一个人生日还有多少天和多少小时的 UNIX 脚本
- ruby-on-rails - 如何将jsonb字段值视为序列化中的一等属性?
- php - PHP 返回长字符串不能用作字符串