gpt4 book ai didi

string - awk 全局替换所有出现的字符串

转载 作者:行者123 更新时间:2023-11-29 09:51:16 26 4
gpt4 key购买 nike

我有一个替换另一个文件中的字符串的 bash 脚本:

...
# make MC input script
sig=2.6
awk -v sig="$sig" '{
sub(/XSIGX/, sig);
print;

}' input.txt > output.txt

当我在 input.txt 上运行它时,我得到以下 output.txt(注意替换为“2.6”,但 cat 中没有 行):

...
echo "hi" >> /work/d/dfranz/o2_modeling/simulated_densities_2.6.txt

cat /work/d/dfranz/o2_modeling/simulated_densities_2.6.txt | sort -nk1 > /work/d/dfranz/o2_modeling/simulated_rho_sorted_XSIGX.txt # <--- This XSIGX was not replaced but the first occurrence in this line was
rm /work/d/dfranz/o2_modeling/simulated_densities_2.6.txt

最佳答案

在 AWK 函数中,sub 替换一个/第一个实例。如果将 sub 替换为 gsub 应该替换所有实例。因此这应该可以正常工作:

sig=2.6
awk -v sig="$sig" '{
gsub(/XSIGX/, sig);
print;

}' input.txt > output.txt

关于string - awk 全局替换所有出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032201/

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