Bash powershell的Awk命令

Bash powershell的Awk命令,bash,powershell,awk,Bash,Powershell,Awk,powershell中是否有类似于awk的命令 我要执行此命令: awk ' BEGIN {count=1} /^Text/{text=$0} /^Time/{time=$0} /^Rerayzs/{retext=$0} { if (NR % 3 == 0) { printf("%s\n%s\n%s\n", text, time, retext) > (count ".txt") count++ } }' file 到powershell命令。通常我们希望看到您尝

powershell中是否有类似于
awk
的命令

我要执行此命令:

awk '
BEGIN {count=1}
/^Text/{text=$0}
/^Time/{time=$0}
/^Rerayzs/{retext=$0}
{
  if (NR % 3 == 0) {
    printf("%s\n%s\n%s\n", text, time, retext) > (count ".txt")
    count++
  }
}' file

到powershell命令。

通常我们希望看到您尝试了什么。这至少表明你正在努力,我们不仅仅是为你做工作。我认为您是PowerShell的新手,所以我将用勺子给您一个答案,希望您能用它来学习和扩展知识,并希望将来有更好的问题

我非常确信,这将完成与您计划的相同的事情。你必须给它一个输入数组(文本文件的内容,字符串数组,诸如此类),它将根据它找到的treo“text”、“Time”和“Rerayzs”的匹配数量生成几个文件。它会将它们按文本顺序排列,然后是带时间的新行,然后是带Rerayzs的新行

$Text,$Time,$Retext = $Null
$FileCounter = 1
gc c:\temp\test.txt|%{
    Switch($_){
        {$_ -match "^Text"} {$Text = $_}
        {$_ -match "^Time"} {$Time = $_}
        {$_ -match "^Rerayzs"} {$Retext = $_}
    }
    If($Text -and $Time -and $Retext){
        ("{0}`n{1}`n{2}") -f $Text,$Time,$Retext > "c:\temp\$FileCounter.txt"
        $FileCounter++
        $Text,$Time,$Retext = $Null
    }
}
这将获取文件
C:\Temp\Test.txt的文本,并将编号文件输出到同一位置。我测试的文件是:

Text is good.
Rerayzs initiated.
Stuff to not include
Time is 18:36:12
Time is 20:21:22
Text is completed.
Rerayzs failed.
我只剩下2个文件作为输出。第一条是:

Text is good.
Time is 18:36:12
Rerayzs initiated.
第二条内容如下:

Text is completed.
Time is 20:21:22
Rerayzs failed.

通常我们想看看你都做了些什么。这至少表明你正在努力,我们不仅仅是为你做工作。我认为您是PowerShell的新手,所以我将用勺子给您一个答案,希望您能用它来学习和扩展知识,并希望将来有更好的问题

我非常确信,这将完成与您计划的相同的事情。你必须给它一个输入数组(文本文件的内容,字符串数组,诸如此类),它将根据它找到的treo“text”、“Time”和“Rerayzs”的匹配数量生成几个文件。它会将它们按文本顺序排列,然后是带时间的新行,然后是带Rerayzs的新行

$Text,$Time,$Retext = $Null
$FileCounter = 1
gc c:\temp\test.txt|%{
    Switch($_){
        {$_ -match "^Text"} {$Text = $_}
        {$_ -match "^Time"} {$Time = $_}
        {$_ -match "^Rerayzs"} {$Retext = $_}
    }
    If($Text -and $Time -and $Retext){
        ("{0}`n{1}`n{2}") -f $Text,$Time,$Retext > "c:\temp\$FileCounter.txt"
        $FileCounter++
        $Text,$Time,$Retext = $Null
    }
}
这将获取文件
C:\Temp\Test.txt的文本,并将编号文件输出到同一位置。我测试的文件是:

Text is good.
Rerayzs initiated.
Stuff to not include
Time is 18:36:12
Time is 20:21:22
Text is completed.
Rerayzs failed.
我只剩下2个文件作为输出。第一条是:

Text is good.
Time is 18:36:12
Rerayzs initiated.
第二条内容如下:

Text is completed.
Time is 20:21:22
Rerayzs failed.

我猜你在用Cygwin和Powershell?如果不是,你能澄清一下吗?我不熟悉Awk,但如果你能说明你的原始文本(或非个性化样本)和所需的输出,我们可能至少可以帮助你提供一些建议。我觉得正则表达式匹配可能会满足你的需要。你的问题有点让人困惑
awk
powershell
都是编程语言。鉴于我对powershell的了解很少,我想您会发现文本处理的awk功能是powershell包含的所有功能的子集,并警告说,这些额外功能是为在非常以MSWindows为中心的环境中工作而设计的。Good luck.awk是我在bash编程中使用的一个命令,我希望在PowerShell中使用它。我理解这一点,但awk并不直接存在于PowerShell中。可能还有其他方法可以实现您的目标,但我们需要更清楚地了解您的目标,而不仅仅是Awk命令。我假设您正在将Cygwin与Powershell一起使用?如果不是,你能澄清一下吗?我不熟悉Awk,但如果你能说明你的原始文本(或非个性化样本)和所需的输出,我们可能至少可以帮助你提供一些建议。我觉得正则表达式匹配可能会满足你的需要。你的问题有点让人困惑
awk
powershell
都是编程语言。鉴于我对powershell的了解很少,我想您会发现文本处理的awk功能是powershell包含的所有功能的子集,并警告说,这些额外功能是为在非常以MSWindows为中心的环境中工作而设计的。Good luck.awk是我在bash编程中使用的一个命令,我希望在PowerShell中使用它。我理解这一点,但awk并不直接存在于PowerShell中。可能还有其他方法可以实现您想要的,但是我们需要更清楚地知道您想要什么,而不仅仅是Awk命令。谢谢,这很有帮助。经过一些改变后基本上可以工作了。我真的尝试了很多方法,但都没有成功。我犯了很多错误,因为我是powershell的新手,我不知道该怎么办。再次感谢。很高兴听到你的问题有帮助,如果你已经准备好了,请将答案标记为已接受,以便其他人将来可以使用你的问题作为参考。谢谢,这很有帮助。经过一些改变后基本上可以工作了。我真的尝试了很多方法,但都没有成功。我犯了很多错误,因为我是powershell的新手,我不知道该怎么办。再次感谢。很高兴听到你的问题有帮助,如果你已经准备好了,请将答案标记为已接受,以便其他人将来可以使用你的问题作为参考。