-1

我在文本文件中有一行,例如:

abcde:jhdfj$jhbsfiy/.hghi$jh:12345:dgve::

我想用一个变量替换第三个字段 12345。无需触及其余部分,也无需将任何内容复制到变量中...帮助?是的,本质上这是一个单一的问题:)

4

3 回答 3

0

这条线应该满足您的要求:

awk -F: '{$3="55555"}1' OFS=":" file

55555新的字符串。

于 2013-04-09T14:57:15.657 回答
0

这应该有效:

v="new val"
echo "abcde:jhdfj$jhbsfiy/.hghi$jh:12345:dgve::" | awk -F: -v new=${v} 'OFS=FS; $3=new'
于 2013-04-09T14:57:57.480 回答
0
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"
于 2013-04-10T14:26:02.987 回答