我有一个csv,我想删除一些字符进行进一步处理。在使用regex -replace方法之前我已经多次这样做了,但这次它似乎弄乱了整个csv。我正在使用:
$Removed_Characters=$Good_CSV|%{$_ -replace "X",""}
而不是没有“X”字符的相同csv,它输出一系列数组,每行一个(即@{Name=Tom, ID=12}@{Name=Bill, ID=15}
...)。这根本不是我想要的,而不是我过去看到过的。我能以不同的方式做些什么?
答案 0 :(得分:1)
看起来您正在尝试替换对象数组的任何属性中的字符串(来自import-csv),但您可能只是想要在单个值中替换字符串。
您提供的脚本是将每个对象转换为字符串,然后对该字符串值执行字符串方式替换。给你看起来像对象属性的哈希。
@"
Name,ID
Tom,12
Joe,15
"@ | out-file test.csv
$CSVFile = import-csv test.csv
$CSVFile | %{$_.name = $_.name -replace 'o','i'}
$CSVFile
#Name ID
#---- --
#Tim 12
#Jie 15
$Properties = $CSVFile | get-member -membertype noteproperty | select -expand name
$CSVFile | %{
$entry=$_;
foreach ($prop in $Properties) {
$entry.$prop = $entry.$prop -replace 'o|1','i'
}
}
$CSVFile
#Name ID
#---- --
#Tim i2
#Jie i5
请注意,替换所有属性上的值也会将所有这些值转换为字符串,因此您可能会失去保真度(日期等)。
祝你好运!
沙恩
答案 1 :(得分:0)
诀窍是使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title>
Puzzle box
</title>
<link rel="stylesheet" type="text/css" href="css/ind.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="js/ind.js"></script>
</head>
<body>
<div class="main_box">
<div class="big_box">
<div class="target">Tar</div>
<div class="target1">1</div>
<div class="target2">2</div>
<div class="target3">3</div>
<div class="target4">4</div>
</div>
<div class="btn" id="hello_1">btn 1</div>
<div class="btn" id="hello_2">btn 2</div>
<div class="btn" id="hello_3">btn 3</div>
<div class="btn" id="hello_4">btn 4</div>
</div>
</body>
</html>
将csv作为字符串导入。
get-content
使用正则表达式替换在巨型字符串上比在csv对象上简单得多。