组织结果查询

时间:2017-11-01 10:24:17

标签: bash sqlite

我正在尝试编写程序()以从chrome Web浏览器中提取已保存的密码。

到目前为止,我发现以下命令提取网站地址,用户名和密码:

$ sqlite3 ~/.config/chromium/Default/"Login Data" "select * from logins" | cut -d "|" -f 1,4,6

然而,数据显示在屏幕上并且没有整齐排列。我想要做的是整齐地存储数据。

  1. 输出目前由|分隔相反,我喜欢这个由制表符(\ t)
  2. 分隔
  3. 我想在顶部添加标题
  4. 第一列在网站地址前面有http://或https://,我想要剥离它。
  5. 如果可能的话,我希望能够在一个脚本中包含所有内容。如果bash不适合这个,我愿意根据需要尝试不同的编程语言。
  6. 任何其他建议都是最受欢迎的,因为我这样做是为了一个爱好。我学得越多越好。
  7. 我正在寻找有关我能做什么的建议。在我的最后一个帖子中,我被建议在codereview堆栈交换站点上发布而不是建议。如果这也更适合我原谅我的noobness,如果可能的话告诉我如何移动它。

1 个答案:

答案 0 :(得分:0)

假设您将查询结果保存在名为/path/to/file的文件中:

$ cat script
#!/bin/bash
sed -i '1iURL|Username|Password' /path/to/file
sed -i 's|http.*//||g' /path/to/file
awk -F"|" '{ print $1, $2, $3 }' /path/to/file | column -t > /path/to/output

这应该这样做。

第1行sed -i '1iURL|Username|Password' /path/to/file:在文件中添加标题

第2行sed -i 's|http.*//||g' /path/to/file:从文件中删除http * //

第3行awk -F"|" '{ print $1, $2, $3 }' /path/to/file | column -t > /path/to/output:将输出格式化为新文件:/path/to/output