我有一个名为Trimstart('0')
的文件,它包含以下ff:
00000001 00000002 00000004 00000005 00000010
我想删除前导0而不是00000010上的0。
我正在尝试使用u
,但似乎无法让它发挥作用。
答案 0 :(得分:1)
只需使用正则表达式替换:
Get-Content myfnames.txt | % {$_ -replace '^0+', ''} | Set-Content NewFile.txt
答案 1 :(得分:1)
一种方法是简单地将值转换为整数:
$f = 'C:\path\to\myfnames.txt'
(Get-Content $f) | ForEach-Object { [int]$_ } | Set-Content $f
其他方式是-replace
建议的ForEach-Object
运算符,此处不需要Get-Content
,因为运算符可以直接用于$f = 'C:\path\to\myfnames.txt'
(Get-Content $f) -replace '^0+' | Set-Content $f
的数组返回):
TrimStart()
或您说过尝试的$f = 'C:\path\to\myfnames.txt'
(Get-Content $f) | ForEach-Object { $_.TrimStart('0') } | Set-Content $f
方法:
$f = 'C:\path\to\myfnames.txt'
(Get-Content $f).TrimStart('0') | Set-Content $f
如果您至少拥有PowerShell v3,则可以将后者简化为:
TrimStart()
因为v3 PowerShell支持自动展开数组,所以你可以通过在数组本身上调用它来透明地调用数组成员的方法。在v3之前,这会导致错误,因为数组未展开且数组对象本身没有方法Get-Content
。
旁注:无论哪种方式,如果您想将修改后的数据写回同一个文件,您需要在括号中运行Set-Content
,以便它读取(并关闭)在将数据传递到管道之前的整个文件。否则// chart basics
google.load('visualization', '1.0', {'packages':['timeline']});
google.setOnLoadCallback(drawChart);
//begin our function
function drawChart() {
//container
var container = document.getElementById('chart_div_23_36');
$.ajax({
url: 'https://gist.githubusercontent.com/vgrem/a32a35e5e22170e2c9f0/raw/950256440645ae5b506fb18547cbaa0261a1d5bc/data.json',
dataType: "json",
cache: false
}).done(function(jsonData) {
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.Timeline(container);
chart.draw(data, {
width: 924,
height: 340,
enableInteractivity : false,
backgroundColor: '#fff',
avoidOverlappingGridLines: false
});
}).fail(function(error) {
google.visualization.errors.addError(container,
"Failed to load data for the chart.");
});
}
//end function
会尝试写入仍在读取的文件,这会失败。