mysql - 如何将我的 .log 文件存入数据库或适合数据库的格式

标签 mysql sed insert string-parsing

我的日志文件的布局如下:

 08/30 06:30:40  0000:00:04 T992    **** 01865888888 860444         ST992                                  101   T1011                1865888888         Y1016969 A                                            
 08/30 06:35:09  0000:00:03 T992    **** 01865888888               E                                       101   T1011                1865888888         G1013976 A                                            
 08/30 06:36:50  0000:00:03 T992    **** 01865888888               E                                       101   T1011                1865888888         W1017933 A                                            
 08/30 06:48:34  0000:00:16 516332  **** 516330                    I 516330                                101  

如何均匀地显示所有列,以便我可以轻松地将这些数据导入数据库。

我已经尝试过 Windows 的 SED 来删除多个空格并插入逗号,但仍然没有排列我需要的所有列,例如内联的 101 和内联的所有日期等。

有人帮忙吗?

最佳答案

在这里,我为您开始:

sed -r 's/(.{5}) (.{8})  (.{10}) (.{6})/"\1","\2","\3","\4"/'

这将提取前 4 个字段。 计算列数,放入(.{<number>}) 添加空格 使用 ,"\<field number>" 得到结果

这是我的测试

echo "08/30 06:48:34  0000:00:16 516332  **** 516330                    I 516330 " | sed -r 's/(.{5}) (.{8})  (.{10}) (.{6})/"\1","\2","\3","\4"/'

关于mysql - 如何将我的 .log 文件存入数据库或适合数据库的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46353874/

相关文章:

PHP/MySQL更新数据库中一条消息记录的问题

regex - 处理 Ping 数据(正则表达式)

sed - 使用sed从文件中删除多字节字符

unix - 仅打印匹配记录后开始的匹配标题字段

c++ - vector::insert 在 VS2010 中执行意外结果

php - php中使用mysql的多语言实现

php - PHP 插入语句和 MYSQL 数据库的编码问题

php - MySQL当插入行列值对于每一行都是相同的

mysql - 如何计算每个对象的值之间的平均差异?

mysql - select 和 insert 中的多个 where 子句