首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Powershell输出中的每两行连接起来

将Powershell输出中的每两行连接起来
EN

Stack Overflow用户
提问于 2020-08-21 18:10:26
回答 2查看 890关注 0票数 1

我试图组合这个Powershell命令输出的每两行:

代码语言:javascript
复制
(((Invoke-WebRequest -Uri "https://www.timeanddate.com/holidays/us/$(Get-Date -Format yyyy)").Content | sls 'id=holidays') -split '<th class="nw" >' | Out-String -Stream) -replace '<|>',',' | ForEach-Object {$_.Split(',')[10,0];}

如您所见,如果您运行它,它将输出当前年度的假期及其日期,如下所示:

代码语言:javascript
复制
New Year's Day
Jan 1
World Braille Day
Jan 4
Epiphany
Jan 6
Orthodox Christmas Day
Jan 7
International Programmers' Day
Jan 7

etc.

我的目标是输出如下:

代码语言:javascript
复制
New Year's Day Jan 1
World Braille Day Jan 4
Epiphany Jan 6
Orthodox Christmas Day Jan 7
International Programmers' Day Jan 7

etc.

任何建议都是受欢迎的(我希望在此过程中不将输出写入文件)。或者,如果有一个更有效的方法,我也对此持开放态度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-21 18:43:22

使用一个简单的for循环,其计数器每次递增2次:

代码语言:javascript
复制
$splitLines = (((Invoke-WebRequest -Uri "https://www.timeanddate.com/holidays/us/$(Get-Date -Format yyyy)").Content | sls 'id=holidays') -split '<th class="nw" >' | Out-String -Stream) -replace '<|>',',' | ForEach-Object {$_.Split(',')[10,0];}

for($i = 0; $i -lt $splitLines.Count; $i += 2){
  $splitLines[$i,($i+1)] -join ' '
}
票数 1
EN

Stack Overflow用户

发布于 2020-08-21 18:45:16

你可以沿着这条路线做点什么。由于某些原因,我必须在这里使用模数4,而不是2,因为当我像这样分裂时,它使第二行空。

代码语言:javascript
复制
$inputData = @"
New Year's Day
Jan 1
World Braille Day
Jan 4
Epiphany
Jan 6
Orthodox Christmas Day
Jan 7
International Programmers' Day
Jan 7
"@

$splitData = $inputData.Split([Environment]::NewLine)

# use a dot here to make the output availabe after the iteration is completed
$splitData | . { 
  begin {
      $output = "" 
      $i = 0
  }
  process {
    if(0 -eq $i % 4) {
      $output += $_ + [Environment]::NewLine
    }
    $i = $i + 1
  }
}

Write-Output $output
# New Year's Day
# World Braille Day
# Epiphany
# Orthodox Christmas Day
# International Programmers' Day

它不是完美的,但它适用于给定的问题,我建议对它进行修补,使它更好。有一段时间没有使用PowerShell了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63528026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档