我在文本文件中有一行,例如:
ABCDE:jhdfj $ jhbsfiy / .hghi $ JH:12345:dgve ::
我希望用变量替换第3个字段12345。没有接触到其余部分而没有将任何内容复制到变量中......有帮助吗?是的,这本质上是一个单一的问题:)
答案 0 :(得分:0)
此行应符合您的要求:
awk -F: '{$3="55555"}1' OFS=":" file
55555
是新字符串。
答案 1 :(得分:0)
这应该有效:
v="new val"
echo "abcde:jhdfj$jhbsfiy/.hghi$jh:12345:dgve::" | awk -F: -v new=${v} 'OFS=FS; $3=new'
答案 2 :(得分:0)
sed -i "s/:[0-9]*:/:$VAR:/1" INPUTFILE
其中$ VAR包含您想要用。替换第三个字段的内容。
或
sed -i "s/:[0-9]*:/:NewText:/1" INPUTFILE
其中NewText是您要替换的金额。
如果你想在stdin上做,那么你可以
echo "stdin Teststring" | sed -i "s/:[0-9]*:/:$VAR:/1"