【发布时间】:2019-01-30 18:44:33
【问题描述】:
我想将一个 txt 块格式化为一个数组。 首先,我试图删除单双“|”仅限。
Alert|data|set > Alertdataset
380 032|(||0%) > 380 032(0%)
然后,用逗号替换remaning "|"
set|||||||||||||||||Raw > set,Raw
所以这个:
Dataset|name|||||||||||||||||||Aggregation|name|||||Max|Age|||||Current|Size,|Kb
------------------------------|--------------------|-------|--------------------
Alertdata|set|||||||||||||||||Raw|data|||||||||||||||||400|||||||380 032|(||0%)
会变成这样:
Dataset,name,Aggregationname,MaxAge,CurrentSizeKb
------------------------------|--------------------|-------|--------------------
Alertdataset,Rawdata,400,380 032(0%)
当我尝试 -replace "|"," " 时,我得到了这个,这不是我想要的:
PS > $tmp -replace "|",""
D
a
t
a
s
e
t
|
n
a
m
e
|
|
|
|
|
|
|
我真的不知道如何只拆分一两个字符,而不是全部。
文本块(来源):
Dataset|name|||||||||||||||||||Aggregation|name|||||Max|Age|||||Current|Size,|Kb
------------------------------|--------------------|-------|--------------------
Alert|data|set|||||||||||||||||Raw|data|||||||||||||||||400|||||||380 032|(||0%)
Client|Monitoring|data|set|||||Raw|data||||||||||||||||||30|||||||||||||0|(||0%)
Client|Monitoring|data|set|||||Daily|aggregations|||||||400||||||||||||96|(||0%)
Configuration|dataset||||||||||Raw|data|||||||||||||||||400|||||9 481 776|(||3%)
Event|data|set|||||||||||||||||Raw|data|||||||||||||||||100||||14 872 112|(||5%)
Exchange|2013:|Mailbox|Database|data|warehouse|dataset|Raw|data||||||||||||||||||30|||||||||||288|(||0%)
Exchange|2013:|Mailbox|statistics|data|warehouse|dataset|Raw|data||||||||||||||||||30|||||||356 064|(||0%)
Exchange|2013:|Mailbox|statistics|data|warehouse|dataset|Daily|aggregations|||||||400|||||||207 168|(||0%)
MPXAXD|Machine|DataSet|||||||||Raw|data||||||||||||||||||10|||||||||||||0|(||0%)
MPXAXD|Machine|DataSet|||||||||Hourly|aggregations||||||400|||||||||||||0|(||0%)
MPXAXD|Machine|DataSet|||||||||Daily|aggregations|||||||400|||||||||||||0|(||0%)
MPXAXD|Machine|DataSet|||||||||Comtrade|raw|(100)||||||9999|||||||||||576|(||0%)
MPXAXD|Session|DataSet|||||||||Raw|data||||||||||||||||||10|||||||||||||0|(||0%)
MPXAXD|Session|DataSet|||||||||Hourly|aggregations||||||400|||||||||||||0|(||0%)
MPXAXD|Session|DataSet|||||||||Daily|aggregations|||||||400|||||||||||||0|(||0%)
MPXAXD|Session|DataSet|||||||||Comtrade|raw|(100)|||||||400|||||||||7 488|(||0%)
MPXAXD|Session|DataSet|||||||||Comtrade|raw|(101)|||||||400|||||||||5 496|(||0%)
MPXAXD|Session|DataSet|||||||||Comtrade|raw|(102)|||||||400|||||||||3 672|(||0%)
MPXAXD|Session|DataSet|||||||||Comtrade|raw|(103)|||||||400|||||||||1 120|(||0%)
MPXAXD|Session|DataSet|||||||||Comtrade|raw|(104)||||||9999||||||||||||64|(||0%)
Performance|data|set|||||||||||Raw|data||||||||||||||||||10||||19 407 512|(||6%)
Performance|data|set|||||||||||Hourly|aggregations||||||120|||112 011 928|(|37%)
Performance|data|set|||||||||||Daily|aggregations|||||||400||||17 147 640|(||6%)
State|data|set|||||||||||||||||Raw|data|||||||||||||||||180|||||1 589 624|(||1%)
State|data|set|||||||||||||||||Hourly|aggregations||||||120|||115 880 112|(|38%)
State|data|set|||||||||||||||||Daily|aggregations|||||||400||||12 532 360|(||4%)
我的尝试:
13 $trim
14 $trim.trim()
15 $trim.trim() | ConvertFrom-String -PropertyNane "Dataset name"
16 $trim.trim() | ConvertFrom-String -PropertyName "Dataset name"
17 $trim.split(' ','')
18 $trim
19 $trim -split(' ','')
20 $trim -split(" ","")
21 $trim.split("`n")
22 $trim
23 $trim.split("`n`r")
24 $trim.split("`n",' ')
25 $trim -split "\s{1,}"
26 $trim -split "\s{1,}"
27 $trim -split "\s{2,}"
28 $trim -split "\s{5,}"
29 $trim -split "\s{10,}"
30 $trim -split "\s{50,}"
31 $trim -split "\s{,1}"
32 $trim -split "\s{0,}"
33 $trim -split "\s{1,1}"
34 $trim
35 $trim -replace '(([a-z]) ([A-Z]))','(([a-z])([A-Z]))'
36 $trim -replace ' ',''
37 $trim -replace (' ','|')
38 $tmp = $trim -replace (' ','|')
39 $tmp1 = $tmp -replace ('|','')
40 $tmp1
41 $tmp1 = $tmp -split ('|','')
42 $tmp1
43 $tmp
44 $tmp -replace ('|','')
45 $tmp -replace ('\|','')
46 $tmp -split '|'
47 $tmp -replace ('\|')
48 $tmp -replace ('\|','')
49 $tmp -replace ('\|','')
50 $tmp -replace ('\|','')
51 $tmp1 = $tmp -split ('|','')
52 $tmp1
53 $tmp1 = $tmp -split ('|','')
54 $tmp1 -replace ',',''
55 $tmp1 -replace '\n',''
56 $tmp1.Split([Environment]::NewLine)
57 $tmp1 -split "`r`n"
58 $tmp1 -replace "`n",", " -replace "`r",", "
59 $tmp
60 $tmp1 -replace "|"," ,(1,)" -replace "`r",", "
61 $tmp1 -replace "|"," ,{1,}" -replace "`r",", "
62 $tmp1 -replace "|"," " -replace "`r",", "
63 $tmp1
64 $tmp
65 $trim
66 $trim -replace ' ','_'
67 $tmp
68 $trim
69 $trim | ConvertTo-Html
70 $trim | ConvertTo-Html -As Table
71 $trim
72 $trim.tostring()
73 $trim
74 [string]$trim
75 $tmp1
76 $tmp
77 $tmp1 -replace "|"," "
78 -replace "|"," "-replace "|"," "
79 -replace "|"," "
感谢您的帮助!
【问题讨论】:
-
您是否尝试过自己解决这个问题?请edit the question 发布您的代码并展示您的尝试,有人会帮助您。
-
感谢您的帮助,很有用...
标签: regex string powershell replace split