我的代码片段:
if [[ $1 =~ .*core.* ]] && [[ $3 =~ .*165.* ]] ;
then
{
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.300000;?g" $1_chain.v
}
elif [[ $1 =~ .*top.* ]] && [[ $3 =~ .*ss.* ]] ;
then
{
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.000000;?g" $1_chain.v
}
else
{
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 2.500000;?g" $1_chain.v
}
fi
当inputt1 from user有一个字符串匹配核心,input3 user input有一个字符串匹配核心时,那么给定的命令需要在指定的文件中执行。
试试这个:
#!/bin/bash
if [[ $1 =~ .*core.* ]] && [[ $3 =~ .*165.* ]]
then
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.300000;?g" "$1_chain.v"
elif [[ $1 =~ .*top.* ]] && [[ $3 =~ .*ss.* ]]
then
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.000000;?g" "$1_chain.v"
else
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 2.500000;?g" "$1_chain.v"
fi
我没有尝试或验证您的sed
命令,因为您没有提供完整的示例数据集。
对于语法,您可以将代码放入https://www.shellcheck.net/