首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除双引号之间的双引号

如何删除双引号之间的双引号
EN

Stack Overflow用户
提问于 2018-03-22 15:45:12
回答 4查看 94关注 0票数 0

如何删除一组双引号之间的双引号?

"Test T"est"应以"Test Test"形式获得输出

"Test T"est", "Test1 "Test1"应以"Test Test", "Test1 Test1"形式获得输出

EN

回答 4

Stack Overflow用户

发布于 2018-03-22 16:24:49

您可以尝试使用awk

代码语言:javascript
复制
$ awk -F", *" '{                           # Set the field separator
  for(i=1;i<=NF;i++){                      # Loop through all fields
     $i="\""gensub("\"", "", "g", $i)"\""  # Rebuild the field with only surrounding quotes
  }
}1' OFS="," file                           # Print the line 
"Test Test","Test1 Test1"
票数 1
EN

Stack Overflow用户

发布于 2018-03-22 16:59:24

如果这是一个损坏的CSV,并且您可以说字段中没有逗号,那么PowerShell的CSV处理将读取它们并留下尾随的引号。删除它,然后重新导出到新的CSV,以获得带有双引号的值。

代码语言:javascript
复制
import-csv .\test.csv -Header 'column1', 'column2' | 
    ForEach-Object {

        foreach ($column in $_.psobject.properties.Name)
        {
          $_.$column = $_.$column.Replace('"', '') 
        }

        $_ 

     } | Export-Csv .\test2.csv -NoTypeInformation

如果文件中有标头,请删除-header 'column1', 'column2'部件。

票数 1
EN

Stack Overflow用户

发布于 2018-03-22 17:08:49

因此,如果这是针对损坏的CSV的,您可以将问题描述为删除任何不出现在行首或行尾的双引号,以及不在逗号附近的双引号(带有可选的空格)。因此,这可以使用Powershell正则表达式轻松完成,如下所示:

代码语言:javascript
复制
$t = '"Test T"est", "Test1 "Test1"'
$t -replace '(?<!^|\s*,\s*)"(?!\s*,\s*|$)', ''
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49423136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档