Home > Blockchain >  Extract non zero rows from porterrshow command
Extract non zero rows from porterrshow command

Time:12-14

I am executing "porterrshow" command on switches using below code

$cred = Get-Credential

$SAN_S = @(Get-Content -Path "E:\switches.txt")

foreach($SANs in $SAN_S)
{
$session = New-SSHSession -ComputerName $SANs -Credential $cred
$Strem = New-SSHShellStream -SSHSession $Session
sleep -Seconds 10
        $SystemView = $Strem.WriteLine("porterrshow")
        $streamOut = $Strem.read() 
        $streamOut | Out-File -FilePath "E:\$SANs.txt" -Force
         
}

below is the output I am getting

          frames      enc    crc    crc    too    too    bad    enc   disc   link   loss   loss   frjt   fbsy  c3timeout    pcs    uncor
       tx     rx      in    err    g_eof  shrt   long   eof     out   c3    fail    sync   sig                  tx    rx     err    err
  0:    0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  1:    2.5g   3.6g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  2:    0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  3:    3.3g   1.5g   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   

I want to extract the rows which are having any value which is not "0". in above line 2 and 4.

Please let me know how to do that

and I am executing this on multiple switches, so is it possible to put some filter in the porterrshow command itself which will show only the non-zero rows?

Output based on @Theo code

          frames      enc    crc    crc    too    too    bad    enc   disc   link   loss   loss   frjt   fbsy  c3timeout    pcs    uncor
       tx     rx      in    err    g_eof  shrt   long   eof     out   c3    fail    sync   sig                  tx    rx     err    err
  2:  615.8m   1.8g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  3:    2.1g   1.2g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  4:    1.4g   2.9g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
  5:  258.0m 623.6m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  6:    1.7g   1.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  7:  512.5m  73.1m   0      0      0      0      0      0      0     17      0      0      0      0      0      0      0      0      0   
  8:   49.6m   2.4g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   

One of the output file for reference

          frames      enc    crc    crc    too    too    bad    enc   disc   link   loss   loss   frjt   fbsy  c3timeout    pcs    uncor
       tx     rx      in    err    g_eof  shrt   long   eof     out   c3    fail    sync   sig                  tx    rx     err    err
  2:  615.8m   1.8g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  3:    2.1g   1.2g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  4:    1.4g   2.9g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
  5:  258.0m 623.6m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  6:    1.7g   1.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  7:  512.5m  73.1m   0      0      0      0      0      0      0     17      0      0      0      0      0      0      0      0      0   
  8:   49.6m   2.4g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
  9:  599.8m   1.7g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 10:    2.8g 254.9m   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 11:  161.3m   2.8g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 12:    2.5g 556.1m   0      0      0      0      0      0      0    384      0      0      1      0      0      0      0      0      0   
 13:    2.9g   3.5g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
 14:    1.7g   3.6g   0      0      0      0      0      0      0     12      0      0      0      0      0      0      0      0      0   
 15:  390.8m 980.2m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 16:  777.7m   3.1g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 17:    1.1g   2.6g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 18:  155.7m 601.9m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 19:    2.9g   2.8g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 20:  490.4m   4.2g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 21:    2.2g   1.0g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 22:    3.2g   3.5g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 23:    4.0g   2.9g   0      0      0      0      0      0      0     83      0      0      0      0      0      0      0      0      0   
 24:  167.2m   1.0g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 25:    1.2g   2.3g   0      0      0      0      0      0      0      5      0      0      0      0      0      0      0      0      0   
 26:    2.1g 647.2m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 27:   81.7m 294.3m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 28:  838.1m   3.9g   0      0      0      0      0      0      0    258      0      0      1      0      0      0      0      0      0   
 29:    2.5g 843.1m   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   
 30:    2.4g 927.7m   0      0      0      0      0      0      0      2      0      0      0      0      0      0      0      0      0   
 31:    3.3g   1.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 32:    1.9g   3.4g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 33:    2.3g 819.2m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 34:    1.7g 721.5m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 35:    3.5g   1.0g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 36:    3.6g   1.0g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 37:    1.8g 672.6m   0      0      0      0      0      0      0     12      0      0      0      0      0      0      0      0      0   
 38:  241.0m 965.4m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 39:  254.4m   1.2g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 40:    3.5g   2.2g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 41:    3.4g   1.9g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 42:    3.4g   1.9g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 43:    1.4g   4.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 44:    1.4g   4.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 45:    2.5g   3.9g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 46:    2.5g   3.9g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 47:  128.2m   3.2g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 48:    1.0g   2.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 49:  251.5m   1.7g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 51:  910.2m 559.5m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 52:  380.1m 708.0m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 53:  568.2m   1.4g   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   
 54:    3.7g   3.7g   0      0      0      0      0      0      0      4      0      0      1      0      0      0      0      0      0   
 55:  776.9m   4.1g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 56:    1.5k   1.5k   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 57:    1.5k   1.5k   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 58:    1.5k   1.5k   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 59:    3.6g   3.7g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 60:    1.6g   1.6g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 61:    3.6g   3.7g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 62:  657.8m 517.0m   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 63:    3.6g   3.6g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 64:    3.6g   3.6g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 65:    3.6g   3.6g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 66:    3.6g   3.6g   0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0   
 67:    4.0g   1.6g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0    149      0   

expected output for the above

          frames      enc    crc    crc    too    too    bad    enc   disc   link   loss   loss   frjt   fbsy  c3timeout    pcs    uncor
       tx     rx      in    err    g_eof  shrt   long   eof     out   c3    fail    sync   sig                  tx    rx     err    err
  2:  615.8m   1.8g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  3:    2.1g   1.2g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  4:    1.4g   2.9g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
  7:  512.5m  73.1m   0      0      0      0      0      0      0     17      0      0      0      0      0      0      0      0      0   
  9:  599.8m   1.7g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 10:    2.8g 254.9m   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 12:    2.5g 556.1m   0      0      0      0      0      0      0    384      0      0      1      0      0      0      0      0      0   
 13:    2.9g   3.5g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
 14:    1.7g   3.6g   0      0      0      0      0      0      0     12      0      0      0      0      0      0      0      0      0   
 16:  777.7m   3.1g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 23:    4.0g   2.9g   0      0      0      0      0      0      0     83      0      0      0      0      0      0      0      0      0   
 25:    1.2g   2.3g   0      0      0      0      0      0      0      5      0      0      0      0      0      0      0      0      0   
 28:  838.1m   3.9g   0      0      0      0      0      0      0    258      0      0      1      0      0      0      0      0      0   
 29:    2.5g 843.1m   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   
 30:    2.4g 927.7m   0      0      0      0      0      0      0      2      0      0      0      0      0      0      0      0      0   
 37:    1.8g 672.6m   0      0      0      0      0      0      0     12      0      0      0      0      0      0      0      0      0   
 40:    3.5g   2.2g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 53:  568.2m   1.4g   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   
 54:    3.7g   3.7g   0      0      0      0      0      0      0      4      0      0      1      0      0      0      0      0      0   
 67:    4.0g   1.6g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0    149      0   

CodePudding user response:

I wouldn't know of any switches for porterrshow, but you can remove the lines with only zero values in the saved text file like below:

$result = switch -Regex -File 'D:\Test\PortErr.txt' {
    '^\s*\d :(. )$' { 
        $values = $matches[1] -replace '\s'
        if ($values -ne ('0' * $values.Length)) { $_ }
    }
    default { $_ }
}

# show on screen
$result

# write out to new file ?
$result | Set-Content -Path 'D:\Test\NewPortErr.txt'

Output using your example:

          frames      enc    crc    crc    too    too    bad    enc   disc   link   loss   loss   frjt   fbsy  c3timeout    pcs    uncor
       tx     rx      in    err    g_eof  shrt   long   eof     out   c3    fail    sync   sig                  tx    rx     err    err
  1:    2.5g   3.6g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  3:    3.3g   1.5g   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0


From your comment, I gather that the code needs to filter out lines with only zero values, not counting the first two columns tx and rx

For that, do:

$result = switch -Regex -File 'D:\Test\PortErr.txt' {
    '^\s*\d :(. )$' { 
        $values = ($matches[1].Trim() -split '\s ' | Select-Object -Skip 2) -join ''
        if ($values -ne ('0' * $values.Length)) { $_ }
    }
    default { $_ }
}

# show on screen
$result

# write out to new file ?
$result | Set-Content -Path 'D:\Test\NewPortErr.txt'

Using your new example, the output will be:

          frames      enc    crc    crc    too    too    bad    enc   disc   link   loss   loss   frjt   fbsy  c3timeout    pcs    uncor
       tx     rx      in    err    g_eof  shrt   long   eof     out   c3    fail    sync   sig                  tx    rx     err    err
  2:  615.8m   1.8g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  3:    2.1g   1.2g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
  4:    1.4g   2.9g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
  7:  512.5m  73.1m   0      0      0      0      0      0      0     17      0      0      0      0      0      0      0      0      0   
  9:  599.8m   1.7g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 10:    2.8g 254.9m   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 12:    2.5g 556.1m   0      0      0      0      0      0      0    384      0      0      1      0      0      0      0      0      0   
 13:    2.9g   3.5g   0      0      0      0      0      0      0      2      0      0      1      0      0      0      0      0      0   
 14:    1.7g   3.6g   0      0      0      0      0      0      0     12      0      0      0      0      0      0      0      0      0   
 16:  777.7m   3.1g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 23:    4.0g   2.9g   0      0      0      0      0      0      0     83      0      0      0      0      0      0      0      0      0   
 25:    1.2g   2.3g   0      0      0      0      0      0      0      5      0      0      0      0      0      0      0      0      0   
 28:  838.1m   3.9g   0      0      0      0      0      0      0    258      0      0      1      0      0      0      0      0      0   
 29:    2.5g 843.1m   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   
 30:    2.4g 927.7m   0      0      0      0      0      0      0      2      0      0      0      0      0      0      0      0      0   
 37:    1.8g 672.6m   0      0      0      0      0      0      0     12      0      0      0      0      0      0      0      0      0   
 40:    3.5g   2.2g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0      0      0   
 53:  568.2m   1.4g   0      0      0      0      0      0      0      3      0      0      1      0      0      0      0      0      0   
 54:    3.7g   3.7g   0      0      0      0      0      0      0      4      0      0      1      0      0      0      0      0      0   
 67:    4.0g   1.6g   0      0      0      0      0      0      0      6      0      0      0      0      0      0      0    149      0
  • Related