gpt4 book ai didi

regex - 用 SED 将数字用双引号括起来

转载 作者:行者123 更新时间:2023-11-29 09:44:10 25 4
gpt4 key购买 nike

我有一个简单的需求,我输入了likeL

4,23139,,"XYZ" 

在一个文本文件中,我需要这样的输出

"4","23139","","ARCMsgEnum".

我写的命令在某些情况下工作正常:

sed 's/[0-9]*[0-9]/"&"/g' inputTestData.txt | sed s/,,/,\"\",/g 

但有些行的输入是时间戳:

4,23139,,"XYZ","2008-09-04 08:11:33.51 AM"

所以期望的输出是:

"4","23139","","XYZ","2008-09-04 08:11:33.51 AM"

但是上面的命令给我的输出是这样的:

"4","23139","","XYZ",""2008"-"09"-"04" "08":"11":"33"."46" AM"

最佳答案

以下内容可能对您有用:

sed -e 's/"//g' -e 's/[^,]*/"&"/g' inputfile

这将首先去除引号,然后在逗号内的部分内插入引号。

举个例子:

$ echo 4,23139,,\"XYZ\",\"2008-09-04 08:11:33.51 AM\" | sed -e 's/"//g' -e 's/[^,]*/"&"/g'
"4","23139","","XYZ","2008-09-04 08:11:33.51 AM"

关于regex - 用 SED 将数字用双引号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com