我正在运行一个 shell 脚本,该脚本从几个寄存器收集信息。它将数据转储到文本文件中,如下所示:(我已将要上传的信息以粗体显示)
日志.txt:
ID: 3498x39
Time: 12:24:08
Date: 06/07/2015
4115 134 (0x86)
4116 323 (0x143)
4117 20 (0x14)
4118 3 (0x3)
4119 26 (0x1A)
4120 1284 (0x504)
然后 10 分钟后再次重复下一批数据。
我现在想做的是在收集这些信息后更新 MySQL 数据库。是否需要使用 python 程序将数据格式化为我认为类似的内容:
12:24:08 2015/06/07 134 323 20 3 26 1284
或者有更简单的方法吗?
最佳答案
这假定格式是您指定的。因此,它假设任何错误输出都会发送到 stderr。
#!/usr/bin/env bash
output=""
read line # throw away the ID line
for ((i = 0; i != 9; ++i))
do
read line
formatted="$(echo "$line" | cut -d' ' -f2)"
case $i in
1) formatted="$(echo "$formatted" | sed 's#\(\d+/\d+\)/\(\d+\)#\2/\1#')"
;;
*) ;;
esac
output="$output $formatted"
done
echo "$output"
使用问题中的内容作为输入运行上述内容。
bash-3.2$ ./test < input.txt
12:24:08 06/07/2015 134 323 20 3 26 1284
考虑到上面的代码只有 14 行,本来可以更短,而且花了大约 2 分钟来写,我想我一定没有回答你所问的问题。因为,如果这是您问题的答案,那么您问了一个糟糕的问题。
关于python - 如何最好地编辑 .txt 文件中的文本以与 mysql 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255888/