我在文本文件中有一行,例如:
abcde:jhdfj$jhbsfiy/.hghi$jh:12345:dgve::
我想用一个变量替换第三个字段 12345。无需触及其余部分,也无需将任何内容复制到变量中...帮助?是的,本质上这是一个单一的问题:)
我在文本文件中有一行,例如:
abcde:jhdfj$jhbsfiy/.hghi$jh:12345:dgve::
我想用一个变量替换第三个字段 12345。无需触及其余部分,也无需将任何内容复制到变量中...帮助?是的,本质上这是一个单一的问题:)
这条线应该满足您的要求:
awk -F: '{$3="55555"}1' OFS=":" file
是55555
新的字符串。
这应该有效:
v="new val"
echo "abcde:jhdfj$jhbsfiy/.hghi$jh:12345:dgve::" | awk -F: -v new=${v} 'OFS=FS; $3=new'
sed -i "s/:[0-9]*:/:$VAR:/1" INPUTFILE
其中 $VAR 包含您要替换第三个字段的内容。
或者
sed -i "s/:[0-9]*:/:NewText:/1" INPUTFILE
其中 NewText 是您要替换的数量。
如果您只想在标准输入上执行此操作,那么您可以
echo "stdin Teststring" | sed -i "s/:[0-9]*:/:$VAR:/1"