gpt4 book ai didi

bash - 使用perl将文件中的变量内容替换为另一个变量内容

转载 作者:行者123 更新时间:2023-12-04 13:47:23 25 4
gpt4 key购买 nike

我正在编写一个 shell 脚本,在 shell 脚本中使用 perl 来替换一个整数变量内容。

#!/bin/sh

InitialFileStep="$1"
CurrentStage=$((($i*(9*4000))+$InitialFileStep))
PreviousStage=$((($(($(($i-1))*(9*4000)))) + (InitialFileStep)))

perl -pi -e 's/$PreviousStage/$CurrentStage/g' file.txt
echo "Hey!"

似乎无法在文件中找到变量内容。我不知道是什么问题,是因为变量是整数而不是字符串吗?

最佳答案

shell 不解释单引号内的任何内容。 '$ThisIsASimpleStringForTheShell' 所以尝试:

perl -pi -e 's/'"$PreviousStage"'/'"$CurrentStage"'/g' file.txt

双引号防止可能的空格弄乱你的命令。

混合使用单引号和双引号使您可以将正则表达式运算符添加到您的命令中,从而防止 shell 在 perl 之前解释它们。此命令将 $PreviousStage 的内容替换为 $CurrentStage 的内容,前提是前者单独出现在一行中:

perl -pi -e 's/^'"$PreviousStage"'$/'"$CurrentStage"'/g' file.txt

关于bash - 使用perl将文件中的变量内容替换为另一个变量内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060837/

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