私はmyfnames.txt
と呼ばれるファイルを持っており、それは以下FF含まれています削除
00000001 00000002 00000004 00000005 00000010私は大手の0を削除したい
ではなく、私は「0 00000010.上
Trimstart('0')
を使用しようとしていますが、それは動作しないようです。
私はmyfnames.txt
と呼ばれるファイルを持っており、それは以下FF含まれています削除
00000001 00000002 00000004 00000005 00000010私は大手の0を削除したい
ではなく、私は「0 00000010.上
Trimstart('0')
を使用しようとしていますが、それは動作しないようです。
ただ、そうのように置き換える正規表現を使用します。
Get-Content myfnames.txt | % {$_ -replace '^0+', ''} | Set-Content NewFile.txt
一つの方法は、単純に整数に値をキャストすることです:
$f = 'C:\path\to\myfnames.txt'
(Get-Content $f) | ForEach-Object { [int]$_ } | Set-Content $f
他の方法は@DaveSextonは(ForEach-Object
ISN」を提案し-replace
オペレータですオペレータはGet-Content
が返す配列に直接使用できるので、ここで必要です):
$f = 'C:\path\to\myfnames.txt'
(Get-Content $f) -replace '^0+' | Set-Content $f
またはあなたがしようとしたと述べTrimStart()
方法:v3のため、PowerShellが自動展開をサポートしているので
$f = 'C:\path\to\myfnames.txt'
(Get-Content $f).TrimStart('0') | Set-Content $f
:
$f = 'C:\path\to\myfnames.txt'
(Get-Content $f) | ForEach-Object { $_.TrimStart('0') } | Set-Content $f
あなたは、少なくともPowerShellをお持ちの場合は、これに後者を簡素化することができV3配列のメンバーを呼び出すことで、配列のメンバーのメソッドを透過的に呼び出すことができます。 v3以前では、配列がアンロールされず、配列オブジェクト自体にメソッドTrimStart()
がないため、エラーが発生します。
サイドノート:いずれかの方法、あなたはそれを読み込み(およびクローズ)ように、バックあなたは括弧でGet-Content
を実行する必要が同じファイルに変更されたデータを書き込みたい場合は、ファイル全体渡す前にデータをパイプラインに送ります。さもなければ、Set-Content
はまだ読み込み中にファイルに書き込みを試みますが、失敗するでしょう。
ありがとうございます!私はすでにすべてを配列に配置し、それをループしてtrimstartを使用するプロセスに入っていましたが、これは簡単です:) –