gpt4 book ai didi

linux shell 脚本 sed

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:37 24 4
gpt4 key购买 nike

#!/bin/sh -x

if [[ $# -eq 0 ]];then
echo "usage: makeSoln <customer name>"
exit
fi

echo "Customer Name is set to : $1"

if [ -d "$1" ]; then
echo "Solution for $1 already exists!! Please delete it before running this."
exit 1;
fi

if [ -e "$1" ]; then
echo "A file by name '$1' exists!! Please delete it before running this."
exit 1;
fi

cp -R SolnTemplate $1

cd $1

find . -name "pom.xml" | xargs sed -i xx 's/SolnTemplate/'$1'/g'

当我给出这个并执行这个文件时,我得到了这个错误:

+ xargs sed -e xx s/SolnTemplate/Reliance/g
sed: -e expression #1, char 2: extra characters after command

最佳答案

开始,替换:

find . -name "pom.xml" | xargs sed -i xx 's/SolnTemplate/'$1'/g' 

与:

find . -name "pom.xml" | xargs sed -ixx 's/SolnTemplate/'$1'/g' 

上面删除了 -ixx 之间的空格。因为您在 Linux 上,所以您使用的是 GNU sed,与 BSD sed 不同,它不接受 -i 和备份后缀之间的空格。

此外,以防万一 $1 在名称中包含空格,它应该用双引号引起来:

find . -name "pom.xml" | xargs sed -ixx 's/SolnTemplate/'"$1"'/g' 

这仍然需要注意不要无意中在 $1 中包含任何 sed-active 字符。

关于linux shell 脚本 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29739736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com