我有 2 个变量:
varString = abcd
varNumber = 12345
我想在一个名为textFile.txt. 该行将如下所示:
abcd:11111:blah:00000:blah
所有字段的长度未知。
我想找到 abcd 行,并将11111位更改varNumber为12345之后文件上的行将是:
abcd:12345:blah:00000:blah
有什么帮助吗?
这样的事情会做:
sed -e "s/\($varString\):\([0-9]*\):/\1:$varNumber:/g" textFile.txt
$varString:<digits>:它用替换字符串$varString:$varNumber:。输出开启stdout。要进行就地编辑,请-i '~'提供sed.
使用awk:
awk -F: -v OFS=: -v varString=abcd -v varNumber=12345 '{if($1==varString)$2=varNumber;print}' file