我有一个以这种相当简单的格式分隔的列表:
IPrangestart,IPrangeend,int number,date (delimited by slashes),Name (is dirty, contains spaces, dots, dashes, quotemarks etc)
前三列不能为空。我想将其转换为标准防火墙阻止可行格式,表示用破折号分隔的随机数:
IPrangestart-IPrangend
有时这些字段是空的。对数千行执行此操作的最快和最聪明的方法是什么?我为每个字母尝试了 RegEx,例如 [A-Za-z],为每个数字尝试了 [0-9],但这并不能解决随机 " . 和上面指定的类似内容的问题......
我试过这个正则表达式,但我不知道如何让它识别中间的破折号(\b25[0-5]|\b2[0-4][0-9]|\b[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}
如果与 ip 相关的列始终存在(根据您的评论),请使用
cut
保留前两个逗号分隔的列,并替换,
为-
:如果由于某种原因,您无法访问
GNU cut
fromcoreutils
(我怀疑的事情,因为您用 标记了问题linux
),因此您错过了该--output-delimiter = -
选项:输出
IPrangestart-IPrangeend