如何使用sed搜索和替换]、[? [关闭]

Posted

技术标签:

【中文标题】如何使用sed搜索和替换]、[? [关闭]【英文标题】:How to search and replace ], [ using sed? [closed] 【发布时间】:2022-01-24 02:38:40 【问题描述】:

我有一个 csv 文件,其中包含逗号分隔的数组,而这些数组在尝试加载文件时又不能正常播放。

我想使用 sed 命令搜索 ],[ 并替换为 ] & [

另外,我想使用 sed 命令搜索所有带有空格 , 的逗号字符并替换为下划线 _

任何建议或字符转义或编码?我目前收到与“不平衡括号”和“无效命令代码 j”相关的终端错误

【问题讨论】:

如果您将代表性的意见和迄今为止的尝试添加到问题中,那么帮助您会容易得多。 您是否按照每个教程的建议尝试使用反斜杠转义特殊字符?也许sed 's/\],\[/\] \& \[/' 请查看help center,尤其是How to ask,以及提供minimal reproducible example 的指南。 嗨,OP。让我们知道答案是否有帮助。如果它有用,请考虑支持它。如果它回答了您的问题,请接受它。这样其他人就知道你已经(充分地)得到了帮助。另见What should I do when someone answers my question? 【参考方案1】:

如果您正在处理数组,您的输入文件可能如下所示:

[A,B,C,D],[E,F,G,H], [1,2,3,4],[5,6,7,8]

此 sed 命令在单个命令中将 ],[ 替换为 ] & [ 并将 , 替换为 _

sed -e 's/\],\[/\] \& \[/g' -e 's/, /\_/g' input.txt

输出:

[A,B,C,D] & [E,F,G,H]_[1,2,3,4] & [5,6,7,8]

\ 用于[& 等特殊字符,以避免出现“不平衡括号”和“无效命令代码j”等终端错误。要在一行中执行多个 sed 命令,您可以为每个命令使用-e

【讨论】:

以上是关于如何使用sed搜索和替换]、[? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sed 和 awk(和 perl)中搜索和替换任意文字字符串

存在点和下划线时使用 sed 搜索和替换

sed全字搜索和替换

如何使用 sed、awk 或 gawk 仅打印匹配的内容?

如何查找多个文件、检查重复文件并用 bash、sed 脚本替换

如何使用 sed 或 awk 正确查找和替换多行文本?