如何使用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)中搜索和替换任意文字字符串