如何将 cut 和 sed 命令应用于 Powershell?

Posted

技术标签:

【中文标题】如何将 cut 和 sed 命令应用于 Powershell?【英文标题】:How to apply cut and sed commands to Powershell? 【发布时间】:2022-01-10 01:17:53 【问题描述】:

我有一个 bash 脚本,它从 2 个单独的文件(一个用于用户数据,另一个用于默认文本)中检索数据并输出一个通函:

if [ $# -eq 0 ]
then
    echo "Please enter two parameters"
    exit
elif [ $# -eq 1 ]
then 
    echo "Please enter one more parameter"
    exit
elif [ $# -gt 2 ]
then 
    echo "Please enter ONLY two parameters"
    exit
fi


while read line
do 

    iN=`echo $line | cut -f1 -d";"`
    iA=`echo $line | cut -f2 -d";"`
    iD=`echo $line | cut -f3 -d";"`

cat $2|sed "s/<NAME>/$iN/g" | sed "s/<ADDRESS>/iA/g" | sed "s/<DATE>/$iD/g"

done < data 

它需要转换为 PS 脚本,这是我目前可以做的:

if ($# -eq 0) 
    Write-Output "Please enter two parameters"
 elseif ($# -eq 1 ) 
    Write-Output "Please enter one more parameter"
 elseif ($# -gt 2) 
    Write-Output "Please enter ONLY two parameters"



foreach($line in Get-Content .\data.txt) 
    

我无法在 Internet 上找到任何与 sedcut 等效的命令,因此我将不胜感激。

【问题讨论】:

查看Read-Host 以获取用户输入。然后看看解析输入......或者[更好]单独询问每个输入,这样就不需要计算东西了。 [咧嘴] 你需要在这里使用splitreplace 【参考方案1】:

您可以使用已转换所有这些命令的 Unix Utils for Windows 套件,而且我们在生产环境中已经使用它们很长时间了。

https://sourceforge.net/projects/unxutils/

其中大部分都有:sed、cut、cat 等。

【讨论】:

以上是关于如何将 cut 和 sed 命令应用于 Powershell?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令行实用程序操作文本:grep、cut、awk、sed 或 BBEdit(Grep 查找选项)

Liunx 中sed、grep、cut、sort、tee、diff 、paste命令

linux命令-sed,uniq,cut,wc

sed命令

使用grep和cut命令 如何截取某一段文字?

sed cut grep linux 命令输出