gpt4 book ai didi

linux - sed 不替换 Bash 脚本中的字符

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

我正在尝试编写一个 shell 脚本来替换所有不是大写字母的字符。第一个参数是一个字符(这将替换其他字符),而其他参数是文件名。当我在终端中尝试 Sed 命令时,它工作得很好,但是在我的脚本中,它只是打印出除了以给定字符开头的每一行之外的每一行。 (我想要标准输出上的结果。)

for i in "${@:2}"
do
if [ -f $i ]
then
sed "s/[^A-Z]/${1}/g" $i
else
echo "$i does not exist"
fi
done

最佳答案

你可以尝试替换:

sed "s/[^A-Z]/${1}/g" $i

作者:

sed -e "s/[^A-Z]/${1}/g" $i

要将每个字母替换为大写,您可以这样做:

sed -e 's/\(.*\)/\U\1/' $i

关于linux - sed 不替换 Bash 脚本中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334128/

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