我有shell脚本,它生成多个输出。
例如
#/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的输出是
1
2
3
4
5第一个var2的输出是
3
4
5
6
7第一个var3的输出是
834
45
345
73
23如何创建具有以下格式的csv文件?
1,3,834
2,4,45
3,5,345
4,6,73
5,7,23发布于 2018-08-14 14:16:16
paste命令是您想要的,还有bash进程替换:
paste -d, <(echo "$var1") <(echo "$var2") <(echo "$var3")1,3,834
2,4,45
3,5,345
4,6,73
5,7,23确保引用变量来维护其中的换行符。
您的管道可以更简单:不需要cat,而awk可以执行grep所做的工作:
paste -d, \
<(awk -F ' ' '/test/ {print $1}' test.json) \
<(awk -F ':' '/new/ {print $5}' test.json) \
<(awk -F ':' '/new-test/ {print $8}' test.json)https://stackoverflow.com/questions/51843469
复制相似问题