我正在尝试查找和删除字符串,如:
[1126604244001,85.00], [1122204245002,85.00], [1221104246003,85.00],
[1222204247004,85.00], [1823304248005,85.00], [1424404249006,85.00],
85.00 =常数。我的意思是[xxxxxxxxxxxxx, 85.00 ],
在记事本中++很简单:
find: "[^........].............,85.00]" and replace:""
我喜欢使用awk或sed自动删除字符串而不将其导入到记事本++。
好的,我有文件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],
我的愿望输出
TEMP.TXT
[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],[1126604244001,17.00],
提前谢谢!
答案 0 :(得分:2)
使用sed,只需:
sed 's/\[[^]]*,85.00\],[[:space:]]*//g' filename
这样,删除了与正则表达式\[[^]]*,85.00\],[[:space:]]*
匹配的所有内容。正则表达式匹配[
后跟任意数量的非]
字符,后跟,85.00],
和可选空格;唯一的语法难点是[^]]
字符集,它匹配]
以外的所有字符。
或者使用awk:
awk -v RS='],' -v ORS='],' '!/,85.00$/' filename
这会将输入拆分为],
分隔的记录,并仅打印那些不以,85.00
结尾的记录。
答案 1 :(得分:0)
egrep -v '[^0-9]85\.00]' YourFile
使用您的模式删除(非空)行