gpt4 book ai didi

unix - 如何在 Unix Shell 脚本中用 SED 替换同一文件中的行?

转载 作者:行者123 更新时间:2023-12-02 18:21:56 25 4
gpt4 key购买 nike

引用this question在第一个和第二个文件中获得匹配的行标识符后,我需要将第一个文件中的行替换为第二个文件中的行。为此,我使用 SED,如下所示。但 Sed 仅替换新文件中的该行。如何在没有临时文件的情况下在同一文件中实现更新(因为这些文件非常大)。

#!/bin/ksh
while read line
do
var=`echo $line|cut -c 3-25`
while read i
do
var1=`echo $i|cut -c 3-25`
if [ $var == $var1 ];
then
sed -i s/$line/$i/ t1
else

echo "not matched"
fi
done < t2
done < t1

即使没有 -i 选项,我也没有得到结果。请帮助我。

编辑:或者建议我任何其他最佳方式,无需临时文件或任何脚本语言(不太推荐)。

最佳答案

看看海绵,它是moreutils的一部分。 .

例如

% sed "s/root/toor/" /etc/passwd | grep -v joey | sponge /etc/passwd

关于unix - 如何在 Unix Shell 脚本中用 SED 替换同一文件中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1544058/

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