String 使用sed或awk、grep删除字符串

String 使用sed或awk、grep删除字符串,string,awk,sed,grep,String,Awk,Sed,Grep,我正在尝试查找并删除以下字符串: [1126604244001,85.00], [1122204245002,85.00], [1221104246003,85.00], [1222204247004,85.00], [1823304248005,85.00], [1424404249006,85.00], 85.00=康斯坦斯。我的意思是[XXXXXXXXXXXX,85.00] 在记事本++中,它很简单: find: "[^........].............,85.00]" an

我正在尝试查找并删除以下字符串:

[1126604244001,85.00],  [1122204245002,85.00], [1221104246003,85.00],
[1222204247004,85.00], [1823304248005,85.00], [1424404249006,85.00],
85.00=康斯坦斯。我的意思是[XXXXXXXXXXXX,85.00]

在记事本++中,它很简单:

find: "[^........].............,85.00]" and replace:""
我喜欢使用awk或sed自动删除字符串,而无需将其导入notepad++

好的,我有文件

temp.txt

[1126604244001,17.00], [1126604244001,17.00], [1126604244001,17.00],
[1126604244001,85.00],  [1122204245002,85.00], [1221104246003,85.00],
    [1222204247004,85.00], [1823304248005,85.00], [1424404249006,85.00], [1126604244001,17.00], [1126604244001,17.00],
[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],
我的欲望输出

temp.txt

[1126604244001,17.00], [1126604244001,17.00], [1126604244001,17.00],
[1126604244001,85.00],  [1122204245002,85.00], [1221104246003,85.00],
    [1222204247004,85.00], [1823304248005,85.00], [1424404249006,85.00], [1126604244001,17.00], [1126604244001,17.00],
[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],
提前谢谢

使用sed,只需:

sed 's/\[[^]]*,85.00\],[[:space:]]*//g' filename
这样,与regex
\[[^]]*,85.00\],[[:space:][]*
匹配的所有内容都将被删除。正则表达式匹配
[
,后跟任意数量的非
]
字符,后跟
、85.00]、
和可选空格;唯一语法上棘手的一点是
[^]]
字符集,它匹配除
]
以外的所有字符

或者与awk一起:

awk -v RS='],' -v ORS='],' '!/,85.00$/' filename
这会将输入拆分为以
]、
分隔的记录,并仅打印那些不以
、85.00
结尾的记录

egrep -v '[^0-9]85\.00]' YourFile

用图案删除(非空)行

以显示所需输出。是否清空该行或删除该行?您要求删除但显示为空我认为
[^,]*
[^]]*
更好取决于OP希望如何处理
[1,2,3,85.00]
。使用
[^]]*
它将被删除,使用
[^,]*
它将保留。对于给定的输入数据,两者的作用相同。我要用sed的//[[^]]*,85.00],*//g'temp.txt>>tempnew.txt THX!!!注意,一行中可以有好的和匹配的,好的应该保留(至少从我从输入/预期输出中了解到的情况)。对,post不清楚删除和清除行/字符串。它最终似乎删除了
[number,85.00]
,但没有删除行的其余部分。在这种情况下,Wintermute做得很好