我有 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