【发布时间】:2020-08-10 01:04:09
【问题描述】:
我想将终端的一些输出重定向到电子表格中的工作表。这在 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列等等......
【问题讨论】:
-
CSV 文件仅包含一个工作表。事实上,CSV 定义甚至不知道 sheet 概念
-
@Poshi 谢谢你的评论。我知道了。实际上,我首先尝试使用 .xlsx,但由于某种原因,我无法打开它,因此尝试使用 .csv。您知道将输出重定向到 .csv 文件中某个列的语法吗?
-
@CAF 这是因为 xlsx 实际上是一个存档(就像 zip 一样),其中包含定义文档结构的 XML 文件。迁移到 python,它可能有一个库。
-
@Bayou 谢谢。出于我的目的,实际上可以将终端输出重定向到 .csv 文件中的某个列。这是否可以通过修改我的 OP 中的命令来实现?
-
可以使用
sed,但您必须编写一些正则表达式。如果没有在您的问题中添加任何输入和预期输出,我将无法为您提供帮助。
标签: bash csv redirect terminal output