Как удалить возврат каретки в Powershell? - PullRequest
0 голосов
/ 20 ноября 2018

Это мой файл журнала:

2018-11-16 01:55:57,102 ERROR [LLLL-1 task-22] c.f.s.p.search.SearchResourceHelper - Error while processing request http://test.com/search-webservice/search?n=20&sf=9-900_60000%2c23-55616&s=1&r=0&t=3&nm=425862&sl=1.0&fs=0&nkr=1&m=1&ct=FParamResolverServiceImplParamResolverServiceImplParamResolverServiceImplParamResolverServiceImplParamResolverServiceImpl
2018-11-16 01:55:57,118 ERROR [PPPP-1 task-22] c.f.s.p.search.SearchResourceHelper - null 
java.lang.NullPointerException: null
2018-11-16 04:10:34,346 ERROR [YYYY-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - filter key not valid: 6.
2018-11-16 04:10:34,346 ERROR [AAAA-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - Unknown filter key 6
2018-11-16 04:10:34,346 ERROR [CCCC-1 task-13] c.f.s.p.search.SearchResourceHelper - Validation error while processing request http://testParamResolverServiceImplParamResolverServiceImplParamResolverServiceImplParamResolverServiceImplParamResolverServiceImpl
2018-11-16 04:10:34,362 ERROR [XNIO-1 task-13] c.f.s.p.search.SearchResourceHelper - Unknown filter key 6
javax.validation.ValidationException: Unknown filter key 6

Это мой код:

$date = Get-Date -UFormat '%Y'

Import-Csv -Path C:\server2.log -Delimiter "," -Header Date, Message | Select -First 8

Однако, есть возврат каретки, поэтому я получаю это:

Date                                                       Message                                                                                   
----                                                       -------                                                                                   
2018-11-16 01:55:57                                        102 ERROR [XNIO-1 task-22] c.f.s.p.search.SearchResourceHelper - Error while processing...
2018-11-16 01:55:57                                        118 ERROR [XNIO-1 task-22] c.f.s.p.search.SearchResourceHelper - null                     
java.lang.NullPointerException: null                                                                                                                 
2018-11-16 04:10:34                                        346 ERROR [XNIO-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - filter key not valid: 6.  
2018-11-16 04:10:34                                        346 ERROR [XNIO-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - Unknown filter key 6      
2018-11-16 04:10:34                                        346 ERROR [XNIO-1 task-13] c.f.s.p.search.SearchResourceHelper - Validation error while...
2018-11-16 04:10:34                                        362 ERROR [XNIO-1 task-13] c.f.s.p.search.SearchResourceHelper - Unknown filter key 6     
javax.validation.ValidationException: Unknown filter key 6

Однако как справиться с возвратом каретки?

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

Вы можете достичь желаемого результата, предварительно обработав текстовые данные.

Get-Content -Path C:\temp\server2.log |
  ForEach-Object -Begin   { $t = '' } `
                 -Process { if( $_ -match '^\d{4}(-\d\d){2} (\d\d:){2}\d\d,\d+' ) { $t; $t = $_ }
                            else { $t = "${t} ${_}" } } `
                 -End     { $t } |
  ConvertFrom-Csv -Header Date, Message | Select -First 8 | Format-Table -AutoSize

Date                Message                                                                                                                                                                                                                                      
----                -------                                                                                                                                                                                                                                      
2018-11-16 01:55:57 102 ERROR [LLLL-1 task-22] c.f.s.p.search.SearchResourceHelper - Error while processing request http://test.com/search-webservice/search?n=20&sf=9-900_60000%2c23-55616&s=1&r=0&t=3&nm=425862&sl=1.0&fs=0&nkr=1&m=1&ct=FParamResolverServi...
2018-11-16 01:55:57 118 ERROR [PPPP-1 task-22] c.f.s.p.search.SearchResourceHelper - null  java.lang.NullPointerException: null                                                                                                                                  
2018-11-16 04:10:34 346 ERROR [YYYY-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - filter key not valid: 6.                                                                                                                                                     
2018-11-16 04:10:34 346 ERROR [AAAA-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - Unknown filter key 6                                                                                                                                                         
2018-11-16 04:10:34 346 ERROR [CCCC-1 task-13] c.f.s.p.search.SearchResourceHelper - Validation error while processing request http://testParamResolverServiceImplParamResolverServiceImplParamResolverServiceImplParamResolverServiceImplParamResolverService...
2018-11-16 04:10:34 362 ERROR [XNIO-1 task-13] c.f.s.p.search.SearchResourceHelper - Unknown filter key 6 javax.validation.ValidationException: Unknown filter key 6
0 голосов
/ 20 ноября 2018

Альтернатива:

  • сначала прочитать файл как текст с помощью Get-Content (для параметра -Raw требуется PSv3 +)
  • удалить все CR не сопровождаемый отметкой времени (используя RegEx с отрицательным прогнозом )
  • используйте ConvertFrom-Csv вместо Import-Csv

> (Get-Content .\server2.log -Raw) -Replace "`r?`n(?!2018)" | 
   ConvertFrom-Csv -Delimiter "," -Header Date, Message | Select -First 8

Date                Message
----                -------
2018-11-16 01:55:57 102 ERROR [LLLL-1 task-22] c.f.s.p.search.SearchResourceHelper - Error while processing request http://test.com/search-webservice/search?n=20&sf=9-900_...
2018-11-16 01:55:57 118 ERROR [PPPP-1 task-22] c.f.s.p.search.SearchResourceHelper - null java.lang.NullPointerException: null
2018-11-16 04:10:34 346 ERROR [YYYY-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - filter key not valid: 6.
2018-11-16 04:10:34 346 ERROR [AAAA-1 task-13] c.f.s.p.s.ParamResolverServiceImpl - Unknown filter key 6
2018-11-16 04:10:34 346 ERROR [CCCC-1 task-13] c.f.s.p.search.SearchResourceHelper - Validation error while processing request http://testParamResolverServiceImplParamReso...
2018-11-16 04:10:34 362 ERROR [XNIO-1 task-13] c.f.s.p.search.SearchResourceHelper - Unknown filter key 6javax.validation.ValidationException: Unknown filter key 6
0 голосов
/ 20 ноября 2018

Предполагая, что у вас когда-нибудь будет только одна дополнительная строка после действительной, вы можете просмотреть список результирующих объектов один за другим, и если значение Date не похоже на дату, добавьте его кпредыдущее сообщение и пропустите его:

$Records = Import-Csv -Path C:\server2.log -Delimiter "," -Header Date, Message

$FixedRecords = for($i = 0; $i -lt $Records.Count - 1; $i++){
    $NextRecord = $Records[$i + 1]
    if($NextRecord.Date -notmatch '^\d{4}-\d{2}-\d{2}'){
        # Append next record's message to the current one
        $Records[$i].Message += $NextRecord.Message
        # Skip ahead to the next record
        $i++
    }
    $Records[$i]
}
...