将输出从终端重定向到.csv文件中的特定工作表

问题描述 投票:0回答:1

我想将某些输出从终端重定向到电子表格中的工作表。 bash中可能吗?

具体来说,我已经生成了一些显示在终端上的输出。我设法将输出改为重定向到.csv文件中的工作表,如下所示:

COMMAND awk '{print $1,$2}' > FILE.csv

$1,$2将终端输出的第1列和第2列重定向到FILE.csv中的工作表。

a)是否可以指定输出重定向到哪张纸?也就是说,如何修改上述命令,以便将输出重定向到例如FILE.csv的第25页?

b)$表示要输出到.csv文件的终端输出的列。仅将第1列第2列输出到.csv文件的语法是什么?

编辑

终端输出为以下形式

X1, Y1 X2, Y2 ...

由大约1000行组成,我想将Xi值复制到.csv文件中的B列,并将Yi值复制到C列。

我有很多这样的输出,它们都是分别生成的,所以总的来说,我希望它们在单个.csv文件中彼此相邻。也就是说,上面的输出可以进入B和C列,然后另一个这样的输出可以进入D和E列,等等...

bash csv redirect terminal output
1个回答
0
投票

MY问题实际上是提供COMMAND的输出和一个csv文件的示例。但是,我将为您提供示例,以便您可以自己实现。

我的csv:

name,lastname,age,salery
Name1,Lastname1,23,2000
Name2,Lastname2,33,3000

如果命令的输出为Lastname2 40 4000,则可以使用此:

target="Lastname2"
age=40
sal=4000
sed -r "s/^(.*,$target),.*$/\1,$age,$sal/" test.csv

0
投票

在Linux中,您可以使用paste

paste -d "," <(COMMAND1 | awk '{print $1,$2}') \
  <(COMMAND2 | awk '{print $1,$2}') \
  (more COMMANDs...) \
> FILE.csv
© www.soinside.com 2019 - 2024. All rights reserved.