我想把这个linux命令的输出发送到mysql table:command:
bzcat filename.bz2 | head -200 | cut -f2,13-15,17 | ruby -ne 'puts "#{$_}" if $_ =~ /\s\d+\.\d+/; ' | ruby -ne 'puts "#{$_}"' | cut -f1-5
命令文本输出:
6985418911 -81.804885 24.550558 12 http://farm8.staticflickr.com/7205/6985418911_df7747990d.jpg
10201275523 -79.365637 43.649708 16 http://farm6.staticflickr.com/5465/10201275523_3e6ea67c7f.jpg
7289030198 -73.985495 40.740067 15 http://farm8.staticflickr.com/7231/7289030198_1f1ba44113.jpg
4572998878 -71.047843 42.33719 16 http://farm4.staticflickr.com/3373/4572998878_658b45226f.jpg
3973434963 -0.384016 39.474441 15 http://farm3.staticflickr.com/2526/3973434963_76c26e3c88.jpg
2932067831 -109.4995 38.737861 16 http://farm4.staticflickr.com/3026/2932067831_8885c3d53f.jpg
此时,url、autotags和photo/video字段需要为空。
1条答案
按热度按时间zhte4eai1#
您必须将输出格式化为insert语句,以便mysql知道如何处理它。您还必须有一个表来捕获输出。模式由您决定。一个简单的例子是:
现在可以使用
sed
或者awk
或者你有什么和管道到mysql:值将加载到表中:
或:
下面是一个具有更复杂模式(表中有多列)的示例。这又归结为使用
awk
或者sed
或者,您在命令行中使用了什么来为表生成insert语句,以便通过管道传输到mysql:mysql>从test.images中选择*;
花点时间熟悉一下自己是个好主意
sed
以及awk
以及mysql
如果你经常做这项工作,请插入语句。