【问题标题】:Search string and replace another string in the row搜索字符串并替换行中的另一个字符串
【发布时间】:2022-08-17 02:06:13
【问题描述】:

我有一个 csv 文件,其中包含如下数据:

\"89216865\";\"89216865\";\"Alternator\";\"PowerMax\";\"4543\"
\"MG 149\";\"MG 149\";\"MAHLE Alternator\";\"MAHLE AM GmbH\";\"4543\"
\"MG 258\";\"MG 258\";\"MAHLE Alternator\";\"MAHLE AM GmbH\";\"4543\"
\"MS 222\";\"MS 222\";\"MAHLE Starter\";\"MAHLE AM GmbH\";\"4543\"
\"MS 241\";\"MS 241\";\"MAHLE Starter\";\"MAHLE AM GmbH\";\"4543\"
\"MS 29\";\"MS 29\";\"MAHLE Starter\";\"MAHLE AM GmbH\";\"4543\"
\"MS 386\";\"MS 386\";\"MAHLE Starter\";\"MAHLE AM GmbH\";\"4543\"
\"MS 645\";\"MS 645\";\"MAHLE Starter\";\"MAHLE AM GmbH\";\"4543\"
\"MS 230\";\"MS 230\";\"MAHLE Starter\";\"MAHLE AM GmbH\";\"4543\"
\"3300216\";\"3300216\";\"Alternator OE\";\"PowerMax\";\"4543\"
\"9213171\";\"9213171\";\"Alternator\";\"PowerMax\";\"4543\"
\"8212676\";\"8212676\";\"Starter\";\"PowerMax\";\"4543\"
\"9214266\";\"9214266\";\"Alternator\";\"PowerMax\";\"4543\"

我需要在出现 \"MAHLE AM GmbH\" 的每一行中将字符串 \"4543\" 替换为 \"287\"。

我试过这个。

Get-Content \"C:\\Users\\SvcBI\\Documents\\Autodoc\\Autodoc_Temp.csv\" | 
Foreach-Object ($_ -match \"MAHLE AM GmbH\") {-replace \"4543\", \"287\"} | 
Set-Content C:\\Users\\SvcBI\\Documents\\Autodoc\\POWERMAX_DK_2.csv

请帮助/金

    标签: search replace


    【解决方案1】:

    看起来您正在使用 Powershell。

    一种方法是读取行,如果行包含值,则执行替换。

    $_ 的含义见this page

    Get-Content "C:\Users\SvcBI\Documents\Autodoc\Autodoc_Temp.csv" | ForEach-Object {
        if($_.Contains("MAHLE AM GmbH")) {
            $_.Replace("4543", "287") 
        } else { $_ }
    } | Set-Content C:\Users\SvcBI\Documents\Autodoc\POWERMAX_DK_2.csv
    

    【讨论】:

      猜你喜欢
      • 2020-01-06
      • 2019-03-28
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 2012-07-17
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多