用BIML脚本中的csv文件替换所有双引号

Posted

技术标签:

【中文标题】用BIML脚本中的csv文件替换所有双引号【英文标题】:replace all double quotes with nothing in csv file in BIML script 【发布时间】:2021-07-07 06:27:52 【问题描述】:

我正在使用 BIML 导入平面文件连接。 " 用于文本周围,; 用作分隔符。 但是,在某些文件中,我看到了这一点:

;"this is valid text""";

有双双引号,它们之间没有任何内容。如果我编辑文件并搜索并替换所有双引号,则导入运行良好。那么,在 BIML 中是否可以自动执行此操作?搜索 "" 的所有实例并将其替换为 ?

<#
string[] myFiles = Directory.GetFiles(path, extension);
string[] myColumns;

       // Loop trough the files
            int TableCount = 0;
            foreach (string filePath in myFiles)
             
                TableCount++;
                fileName = Path.GetFileNameWithoutExtension(filePath);
                #>
                <Package Name="stg_<#=prefix#>_<#=TableCount.ToString()#>_<#=fileName#>" ConstraintMode="Linear" AutoCreateConfigurationsType="None" ProtectionLevel="<#=protectionlevel#>" PackagePassword="<#=packagepassword#>">
                    <Variables>
                        <Variable Name="CountStage" DataType="Int32" Namespace="User">0</Variable>
                    </Variables>               
                    <Tasks>
                        <ExecuteSQL ConnectionName="STG_<#=application#>" Name="SQL-Truncate <#=fileName#>">
                            <DirectInput>TRUNCATE TABLE <#=dest_schema#>.<#=fileName#></DirectInput>
                        </ExecuteSQL>
                         
                        <Dataflow Name="DFT-Transport CSV_<#=fileName#>">
                            <Transformations>
                                <FlatFileSource Name="SRC_FF-<#=fileName#> " ConnectionName="FF_CSV-<#=Path.GetFileNameWithoutExtension(filePath)#>">
                                </FlatFileSource>
                                 
                                <OleDbDestination ConnectionName="STG_<#=application#>" Name="OLE_DST-<#=fileName#>" >
                                <ExternalTableOutput Table="<#=dest_schema#>.<#=fileName#>"/>
                                </OleDbDestination>
                            </Transformations>
                        </Dataflow>
                    </Tasks>
                </Package>
    <#        #>

【问题讨论】:

【参考方案1】:

原来我完全看错了地方。 转到读取文件的部分并添加.Replace("\"\"","")

myColumns = myFile.ReadLine().Replace("""","").Replace(separator,"").Split(delimiter);

【讨论】:

以上是关于用BIML脚本中的csv文件替换所有双引号的主要内容,如果未能解决你的问题,请参考以下文章

请教高手:csv文件用excel打开另存后,如何把单元格格式中的“”双引号去掉,直接转换为文本格式

用其他东西替换或删除新行,但只能在 CSV 文件上使用 PHP 的单引号或双引号之间

hive导入csv文件,字段中双引号内有逗号

正则表达式替换可能会或可能不会被引用的字符串

导出csv格式,一个单元格内容包含“逗号”,“双引号”问题

shell脚本中单引号和双引号的区别