首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文本文件中提取grep多个字符串并将其导出到CSV

从文本文件中提取grep多个字符串并将其导出到CSV
EN

Stack Overflow用户
提问于 2018-08-14 14:09:08
回答 1查看 1.1K关注 0票数 0

我有shell脚本,它生成多个输出。

例如

代码语言:javascript
复制
#/bin/bash
var1=`cat test.json | grep "test" | awk -F ' ' '{print $1}'`
var2=`cat test.json | grep -e "new" | awk -F ':' '{print$5}'`
var3=`cat test.json | grep -e "new-test" | awk -F ':' '{print$8}'`

echo $var1,var2,var3

第一个var1的输出是

代码语言:javascript
复制
1 
2 
3 
4 
5

第一个var2的输出是

代码语言:javascript
复制
3
4
5
6
7

第一个var3的输出是

代码语言:javascript
复制
834
45
345
73
23

如何创建具有以下格式的csv文件?

代码语言:javascript
复制
1,3,834
2,4,45
3,5,345
4,6,73
5,7,23
EN

回答 1

Stack Overflow用户

发布于 2018-08-14 14:16:16

paste命令是您想要的,还有bash进程替换:

代码语言:javascript
复制
paste -d, <(echo "$var1") <(echo "$var2") <(echo "$var3")
代码语言:javascript
复制
1,3,834
2,4,45
3,5,345
4,6,73
5,7,23

确保引用变量来维护其中的换行符。

您的管道可以更简单:不需要cat,而awk可以执行grep所做的工作:

代码语言:javascript
复制
paste -d, \
    <(awk -F ' ' '/test/     {print $1}' test.json) \
    <(awk -F ':' '/new/      {print $5}' test.json) \
    <(awk -F ':' '/new-test/ {print $8}' test.json)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51843469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档