Awk命令到powershell

Awk命令到powershell,powershell,awk,Powershell,Awk,嗨,我试图将awk命令转录到powershell cat $this_file|awk '/SQLAfter/,/SQLFailed/ {print $0}'| grep -v SQL|sed -e 's/^$//' 我有一个文本文件 SQLBefore:= UPDATE SYSADM.PS_S1_R_FLWUP SET S1_FLWUP_DATE_CHK=SYSTIMESTAMP , S1_FLWUP_DATE_LAST=NULL WHERE S1_FLWUP_NAME='GGGGG_ETA

嗨,我试图将awk命令转录到powershell

cat $this_file|awk '/SQLAfter/,/SQLFailed/ {print $0}'| grep -v SQL|sed -e 's/^$//'
我有一个文本文件

SQLBefore:=
UPDATE SYSADM.PS_S1_R_FLWUP
SET S1_FLWUP_DATE_CHK=SYSTIMESTAMP
, S1_FLWUP_DATE_LAST=NULL
WHERE S1_FLWUP_NAME='GGGGG_ETAT_JJ'

SQLAfter:=
UPDATE SYSADM.PS_S1_R_FLWUP
SET S1_FLWUP_DATE_LAST=SYSTIMESTAMP
, S1_FLWUP_STAT_SID=1
WHERE S1_FLWUP_NAME='TTTTT_ETAT_'

SQLFailed:=
UPDATE SYSADM.PS_S1_R_FLWUP
SET S1_FLWUP_DATE_LAST=S1_FLWUP_DATE_FRST
, S1_FLWUP_STAT_SID=3
WHERE S1_FLWUP_NAME='JJJJ_ETAT_JJJ'
我想在powershell中执行与此unix命令相同的操作

cat $this_file|awk '/SQLAfter/,/SQLFailed/ {print $0}'| grep -v SQL|sed -e 's/^$//'
回来了

UPDATE SYSADM.PS_S1_R_FLWUP
SET S1_FLWUP_DATE_CHK=SYSTIMESTAMP
, S1_FLWUP_DATE_LAST=NULL
WHERE S1_FLWUP_NAME='GGGGG_ETAT_JJ'
我一直在使用powershell执行类似于awk的分隔符,介于“SQLBefore:=”和“SQLAfter:=”之间

cat $this_file|awk '/SQLAfter/,/SQLFailed/ {print $0}'| grep -v SQL|sed -e 's/^$//'
谢谢你的帮助


我是powershell的初学者,很抱歉我的英语

有一种可能性,假设我正确地阅读了问题(无论你认为你的英语可能有多差,我向你保证它比我的AWK好得多)


这不是免费的代码编写服务。请发布您的尝试并突出显示您遇到的问题抱歉,我表达得很糟糕,我被困在使用PowerShell的“SQLBefore:=”和“SQLAfter:=”之间的分隔符(如awk)中,但预期的输出是什么?试着提供一个简单的例子来达到最终的目标,跳过可能会让人困惑的细节。它很有效。谢谢你的答案。Mjolinor Thx很有效。它很有效。它是在字符链之间搜索的人(?:Before | After)?是regex?是的,那是regex。实际上,整个参数“SQL(?:Before | After):=”是一个正则表达式。我需要提高我的知识水平。谢谢你的反应能力和完美的英语:)