我有两个变量:
varString = abcd
varNumber = 12345
我想在名为textFile.txt
的文件中找到varString字符串。
该行看起来像:
abcd:11111:blah:00000:blah
所有字段的长度都未知。
我想找到abcd行,并将11111
位更改为varNumber
12345
,然后文件中的行将是:
abcd:12345:blah:00000:blah
任何帮助?
答案 0 :(得分:1)
这样的事情会:
sed -e "s/\($varString\):\([0-9]*\):/\1:$varNumber:/g" textFile.txt
它将$varString:<digits>:
之类的字符串替换为$varString:$varNumber:
。输出在stdout
。要进行就地编辑,请将-i '~'
选项提供给sed
。
答案 1 :(得分:0)
使用awk
:
awk -F: -v OFS=: -v varString=abcd -v varNumber=12345 '{if($1==varString)$2=varNumber;print}' file