gpt4 book ai didi

linux - 如何删除具有匹配模式的整行仅存在于列范围 75 到 104 中

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:19 25 4
gpt4 key购买 nike

我有一个文件,其中包含以下形式的数据。

507425B30    171013D248900022   4057-ACCR PROPERTY TAX  
00000000257910+00000000000000+00000000257910+00000000000000+00000000000000+
507425B30 171013C249999092 1071-DO NOT USE
00000000000000+00000000000000+00000000000000+00000000031940+00000000000000+

现在我必须删除包含类似模式的行00000000000000+00000000000000+ 棘手的部分是我们必须删除该行仅在第一次出现时出现。会有场景就像上面的第一条记录,模式出现在最后,它不应从文件中删除该行。我尝试使用以下命令但是当它在最后一个模式中找到该模式时它正在删除该行不应该是这样的。

sed '/00000000000000+00000000000000+/d' file 

我写了下面的代码来解决这个问题。但是好像要进入无限循环了。你能帮助我哪里出错了吗?

while read line
do
x=`cat $Line | cut -c 75-104`
echo $x

if [ $x -eq "00000000000000+00000000000000+" ]
then
sed '/00000000000000+00000000000000+/d' $File > File.dat
fi

done < $File

最佳答案

这将删除以 14 个零和一个加号字符开头两次的"file"的每一行。

sed -i '/^[0]\{14\}+[0]\{14\}+/d' file

关于linux - 如何删除具有匹配模式的整行仅存在于列范围 75 到 104 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46796308/

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