【发布时间】:2017-06-21 07:03:53
【问题描述】:
我有一个替换另一个文件中的字符串的 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
【问题讨论】:
-
AFAIK sub 替换一个, gsub 替换所有。你试过 gsub 吗?
-
@GeorgeVasiliou 我不知道 gsub。非常感谢——如果你发布一个快速的答案,我会接受。