gpt4 book ai didi

linux - 必须使用 linux 替换第一行第二列中的文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:26:14 24 4
gpt4 key购买 nike

我有一个文件,其内容如下。我想用存储在名为 var 的变量中的文本替换第一行第二列中的文本,请帮帮我。

awk 'FNR==NR{a[NR]=$2;next}
{$1=a[FNR]}1' CT-ColorMaster_3.0.0--ir48-48_build-48.mf var

file.mf的内容

SHA1(CT-ColorMaster_3.0.0--ir48-48_build-48.ovf)= **65769231a386fad1d7ed210422216a52ae6e00e1**
SHA1(CT-ColorMaster_3.0.0--ir48-48_build-48-disk1.vmdk)= b0de466259d30bd973f603adba746814b97e8946

谢谢。

最佳答案

种子

var=foobar; sed -r "1s/^([^ ]+) [^ ]+/\1 $var/" file.mf
SHA1(CT-ColorMaster_3.0.0--ir48-48_build-48.ovf)= foobar
SHA1(CT-ColorMaster_3.0.0--ir48-48_build-48-disk1.vmdk)= b0de466259d30bd973f603adba746814b97e8946

sed -r 使用扩展的正则表达式,这是使 + 工作所必需的。

1s表示只对第1行进行操作,s = substitute。

'[^]+'是常用的模式,要搜索不要贪空。任意多个非空白字符,后跟一个空白。将以下内容替换为 $var。

使用 -i,您可以就地更改文件:

var=foobar
sed -i.bak -r "1s/^([^ ]+) [^ ]+/\1 $var/" file.mf

从 file.mf 生成备份 file.mf.bak,并将更改写入 file.mf。

没有备份:

var=foobar
sed -i -r "1s/^([^ ]+) [^ ]+/\1 $var/" file.mf

如果您的 sed 缺少 -i-选项,请使用

sed -r "1s/^([^ ]+) [^ ]+/\1 $var/" file.mf > file.mf.new 
mv file.mf file.mf.bak
mv file.mf.new file.mf

关于linux - 必须使用 linux 替换第一行第二列中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48786004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com