有人可以告诉我如何只用部分替换整个字符串? 例如,如果txt文件包含:
The number of water molecues: h20=20e43
我需要它说:
The number of water molecues: h20=10e54
到目前为止我所拥有的是sed 's/h20/h20=10e54/'
,其输出:
The number of water molecues: h20=10e54=20e43
问题是我想要替换的原始值并不总是相同,所以我需要它来搜索模式h20=
并替换整个事物。
答案 0 :(得分:1)
尝试:s/\(h20=\)[[:alnum:]]*/\110e54/
匹配“h20 =”(并记住该值),后跟一些字母数字字符;替换为记住的值(\1
)加上您想要的文字字符串。
另外:perl -pe 's/h20=\K\w+/10e54/'
答案 1 :(得分:0)
按照你自己的想法,这是修复。
echo "The number of water molecues: h20=10e54" |sed 's/h20=.*/h20=10e54/'
答案 2 :(得分:0)
awk
也可以使用:
echo "The number of water molecues: h20=20e43" | awk '{sub(/h20=.*/,"h20=10e54")}1'
The number of water molecues: h20=10e54