逐行解析sqlite查询

时间:2011-04-07 07:10:09

标签: sql bash sqlite

我有一个问题,我无法弄清楚自己,我有一个包含数据的SQLite数据库 检索数据我使用bash脚本和命令sqlite3 db "SELECT prkey FROM printers"

输出是这样的:

1

3

4

5

6

7

我需要解析每一行并将其用于我的下一个命令。并且不使用> file

尊重Marco

3 个答案:

答案 0 :(得分:4)

for循环有效,但它们不是很健壮:如果输出中的一行有空格,它们会中断,并且shell必须在查询开始运行循环之前将查询的整个输出存储在内存中。这两个问题很容易解决:

sqlite3 db "SELECT ..." | while read prkey; do
   echo "do stuff with $prkey"
done

答案 1 :(得分:0)

#!/bin/bash

for line in $(sqlite3 db "SELECT prkey FROM printers"); do
  echo "line is --> $line" # do stuff with $line
done

答案 2 :(得分:0)

您可以对sqlite命令的返回值使用for循环。

for prkey in `sqlite3 db "SELECT prkey FROM printers"`; do
    echo $prkey; #replace with your command
done;