sed和regex替换',',字符串中除外

协议

我输入以下架构

10,0,'string1_string2,_string3','',8,0,0,0.59,'20140101205216','20140128074836',584266915,5934

并且我想,使用sed将所有逗号“ 替换为制表符。约束是不要,在文本字符串内替换“ ”(即,逗号'string1_string2,_string3'不应用tab替换)。要执行此操作的正则表达式是,(?!,_)。

但是,以下sed不起作用。我也尝试了所有转义的排列。

sed s/",\(\?\!,_\)"/"\t"/g 

有没有办法做到这一点?

乔纳森·莱夫勒

在Mac OS X 10.9.1上,可以使用:

sed -E -e "s/('[^']*'|[^,]*),/\1X/g"

除了用实际选项卡替换X。对于您的输入行,将产生:

10X0X'string1_string2,_string3'X''X8X0X0X0.59X'20140101205216'X'20140128074836'X584266915X5934

您要在其中使用X的标签。使用GNU sed,您可以-r代替使用-E(尽管它也可以识别-E)。Macsed不会扩展\t到选项卡;GNUsed会的。使用Bash,您可以使用ANSI-C报价机制将外壳程序嵌入到传递给字符串的选项卡中sed

sed -E -e "s/('[^']*'|[^,]*),/\1"$'\t'"/g"

如果没有扩展的正则表达式(由-r激活-E),则不值得尝试sed使用awk代替。

正则表达式会寻找任何一个单引号后跟零个或多个非引号和单引号零个或多个非逗号,后跟一个逗号,以怎样被人记住的要么/或字符串和“选项卡取代它'(使用X表示制表符,因为它更可见)。


devnull 指出,以上答案替换了行尾字符串中的逗号。有一个解决方法:

sed -E -e "s/('[^']*'|[^,]*)(,|$)/\1"$'\t'"/g; s/"$'\t'"$//"

s///g分号之前添加到每一行的端部的卡口; s///分号之后删除刚刚添加的标签。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sed和regex查找并替换字符串

来自分类Dev

用空格替换字符串中的字符(数字除外)

来自分类Dev

如何使用sed和regex查找并替换文件中存在的字符串?

来自分类Dev

终端中的sed regex字符串替换

来自分类Dev

将单词替换为特殊字符串,但Python中的名词和形容词除外

来自分类Dev

替换文件中的字符串和RegEx

来自分类Dev

Java替换字符串中的字符,但变量中的给定值除外

来自分类Dev

sed中的字符串替换

来自分类Dev

替换字符串中的字符(双引号内的值除外)

来自分类Dev

在字符串中查找和替换字符串

来自分类Dev

如何删除字符串中的所有特殊字符除外 - 。和空间

来自分类Dev

删除Java字符串中的所有字符,“ 0”和“ 1”除外

来自分类Dev

从字符串中删除所有特殊字符(数字和度数符号除外)?

来自分类Dev

sed 用空格和特殊字符替换字符串

来自分类Dev

在查找和替换字符串中使用sed和sed进行查找和替换

来自分类Dev

用数字替换字符串,但R数据帧中包含2020或2021的数字除外

来自分类Dev

用正则表达式替换字符串(方括号中除外)

来自分类Dev

sed用管道和星号替换字符串

来自分类Dev

sed->从字符串替换固定文本和括号

来自分类Dev

使用grep和sed替换字符串

来自分类Dev

使用字符串替换的sed和sudo

来自分类Dev

用sed替换小写和大写字符串

来自分类Dev

sed模式将json字符串替换为“ to \”和\\\\

来自分类Dev

使用sed查找和替换复杂的字符串

来自分类Dev

Java Regex,在标点符号处分割字符串,括号中除外

来自分类Dev

如何使用sed替换多个文件中特定行和字段中的字符串

来自分类Dev

替换所有出现的字符,但字符串开头(Regex)除外

来自分类Dev

替换和替换 Ruby 中字符串的字符

来自分类Dev

将字符串中的所有字符替换为星号(MSSQL中的第一个字符和空格除外)

Related 相关文章

  1. 1

    使用sed和regex查找并替换字符串

  2. 2

    用空格替换字符串中的字符(数字除外)

  3. 3

    如何使用sed和regex查找并替换文件中存在的字符串?

  4. 4

    终端中的sed regex字符串替换

  5. 5

    将单词替换为特殊字符串,但Python中的名词和形容词除外

  6. 6

    替换文件中的字符串和RegEx

  7. 7

    Java替换字符串中的字符,但变量中的给定值除外

  8. 8

    sed中的字符串替换

  9. 9

    替换字符串中的字符(双引号内的值除外)

  10. 10

    在字符串中查找和替换字符串

  11. 11

    如何删除字符串中的所有特殊字符除外 - 。和空间

  12. 12

    删除Java字符串中的所有字符,“ 0”和“ 1”除外

  13. 13

    从字符串中删除所有特殊字符(数字和度数符号除外)?

  14. 14

    sed 用空格和特殊字符替换字符串

  15. 15

    在查找和替换字符串中使用sed和sed进行查找和替换

  16. 16

    用数字替换字符串,但R数据帧中包含2020或2021的数字除外

  17. 17

    用正则表达式替换字符串(方括号中除外)

  18. 18

    sed用管道和星号替换字符串

  19. 19

    sed->从字符串替换固定文本和括号

  20. 20

    使用grep和sed替换字符串

  21. 21

    使用字符串替换的sed和sudo

  22. 22

    用sed替换小写和大写字符串

  23. 23

    sed模式将json字符串替换为“ to \”和\\\\

  24. 24

    使用sed查找和替换复杂的字符串

  25. 25

    Java Regex,在标点符号处分割字符串,括号中除外

  26. 26

    如何使用sed替换多个文件中特定行和字段中的字符串

  27. 27

    替换所有出现的字符,但字符串开头(Regex)除外

  28. 28

    替换和替换 Ruby 中字符串的字符

  29. 29

    将字符串中的所有字符替换为星号(MSSQL中的第一个字符和空格除外)

热门标签

归档