I am attempting to normalize a set of TAB-delimited logfiles using Powershell.
Here is the current script:
(Get-ChildItem *.csv) |%{
#Store the name of the file & date
$Name = $_.basename
$FileDate = $_.CreationTime
#Prepends the following to each message: unique Identifer, Hostname, date
(Get-Content $_.fullname) -replace "^","AR-LOG|$Name|$FileDate|"|
#Replaces the TAB delimeter with a Pipe delimeter
Foreach-Object {$_ -replace ' ','|'} |
#Appends the resulting message in ascii
Out-File -append -FilePath normalized.log -Encoding ascii
A snippet of the input & output can be seen here:
http://pastebin.com/uaQadYUC
How can I force the output file to be ascii and not some type of unicode?
***Edit: Further troubleshooting reveals that the input files are actually windows-1252 encoded, which apparently Get-Content cannot handle natively(?)
You should be able to use the encoding flag on out-file as in ... | Out-File -encoding ascii myfile.txt. And if you're using append, make sure all appends use the same encoding or you'll end up with an unusable file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With