用 bash 总结
summarize with bash
我在 SQL 获得了一些数据。我需要总结 bash 没有 sql.
abc=`sudo -u postgres psql admin -t -c "select * from table"`
echo "$abc"
A
B
C
D
dt=`sudo -u postgres psql admin -t -c "slecet * from table"`
echo "$dt"
1
2
3
4
还有包含的文件
1/x
1/y
2/y
2/z
3/z
4/x
4/y
4/z
我想这样输出:
1 A | x, y
2 B | x, z
3 C | z
4 D | x, y, z
我尝试了一些代码,但总是失败
paste -s -d <(echo "$dt" | while read n; do echo -n " ";done) <(echo "$abc";done ) <(echo find .././ ;done)
A
x
y
z
B
x
y
z
C
x
y
z
D
1
2
3
4
so on..
您可以自由提问,如果您需要更多info/details请询问。
使用 GNU awk 并期望数据在文件中(file1
是 abc
数据,file2
dt
):
$ gawk '
ARGIND==1 { # process abc data
a[FNR]=[=10=] # hash to a
n++ # abc and dt expected to have
next # same number of records
}
ARGIND==2 { # process dt data
b[FNR]=[=10=] # hash to b
next
}
split([=10=],t,/\//) { # process the third set
c[t[1]]=c[t[1]] (c[t[1]]==""?"":", ") t[2] # hash to c appending
}
END { # in the end
for(i=1;i<=n;i++) # n is used
printf "%s %s | %s\n",b[i],a[i],c[i] # output
}' file1 file2 file3
输出:
1 A | x, y
2 B | y, z
3 C | z
4 D | x, y, z
如果这是一个连续的事情,您可能想查看 GNU awk 的 pgsql 扩展。
我在 SQL 获得了一些数据。我需要总结 bash 没有 sql.
abc=`sudo -u postgres psql admin -t -c "select * from table"`
echo "$abc"
A
B
C
D
dt=`sudo -u postgres psql admin -t -c "slecet * from table"`
echo "$dt"
1
2
3
4
还有包含的文件
1/x
1/y
2/y
2/z
3/z
4/x
4/y
4/z
我想这样输出:
1 A | x, y
2 B | x, z
3 C | z
4 D | x, y, z
我尝试了一些代码,但总是失败
paste -s -d <(echo "$dt" | while read n; do echo -n " ";done) <(echo "$abc";done ) <(echo find .././ ;done)
A
x
y
z
B
x
y
z
C
x
y
z
D
1
2
3
4
so on..
您可以自由提问,如果您需要更多info/details请询问。
使用 GNU awk 并期望数据在文件中(file1
是 abc
数据,file2
dt
):
$ gawk '
ARGIND==1 { # process abc data
a[FNR]=[=10=] # hash to a
n++ # abc and dt expected to have
next # same number of records
}
ARGIND==2 { # process dt data
b[FNR]=[=10=] # hash to b
next
}
split([=10=],t,/\//) { # process the third set
c[t[1]]=c[t[1]] (c[t[1]]==""?"":", ") t[2] # hash to c appending
}
END { # in the end
for(i=1;i<=n;i++) # n is used
printf "%s %s | %s\n",b[i],a[i],c[i] # output
}' file1 file2 file3
输出:
1 A | x, y
2 B | y, z
3 C | z
4 D | x, y, z
如果这是一个连续的事情,您可能想查看 GNU awk 的 pgsql 扩展。