【发布时间】:2020-07-20 22:37:41
【问题描述】:
我是这里的新手,所以任何指示都会有所帮助。有一个 csv 文件(逗号分隔),并且在其中一列中有用 # 符号分隔的文本(该列由 # 自己分隔)。这是一行的示例:
text,text devicetype,cidr,text#more text#XXXX|more
text#even more text#more
text#text_toreplace#text|text#text
text_toreplace 是我想要用不同的文本替换的内容,而不更改列中值为“text#more text#XXXX|more text#even more text#more text#text_toreplace#text|text#”的所有其余数据文字”
CSV 确实有第一个 raw 作为标题,之后会有多行。
样本输出将与由 # 限定的 coumn 和一个值差异完全相同:
text,text devicetype,cidr,text#more text#XXXX|more
text#even more text#more
text#REPLACED_TEXT#text|text#text
想法
【问题讨论】:
-
here is a great sed introduction 使用regex crosswords 学习正则表达式很容易
-
那么,字段有子字段(由
#分隔)?如果您使用awk,您可以split()#上的列,替换您想要的内容并将它们连接在一起。 -
请将该示例输入的所需输出(无描述)添加到您的问题(无评论)。
-
用建议的指令链接中的简单 sed 解决。
-
@Nixe.Kis 请分享您的解决方案作为答案。所以它会对其他人有所帮助。给一个男人正则表达式的解决方案,他会高兴一天。教他 sed 和 regex 终生快乐。 :P