gpt4 book ai didi

linux - 在输出文件中打印列

转载 作者:太空狗 更新时间:2023-10-29 11:18:20 25 4
gpt4 key购买 nike

我使用下面的命令得到了最后一个命令的输出

last -w -F | awk '{print $1","$3","$5$6$7$8","$11$12$13$14","$15}' | tac | tr ',' '\t'

现在对于相同的输出,我想添加下面的列名称,然后复制到 csv 文件或 xls 文件。

谁能帮帮我。

列名

USERNAME
HOSTNAME
LOGIN_TIME
LOGOUT_TIME
DURATION

输出看起来像这样

oracle localhost 2015 2.30
root localhost 2014 2.30

感谢您对此的帮助。

最佳答案

试试这个:

last -w -F | awk '{print $1,$3,$5$6$7$8,$11$12$13$14,$15} END{print "USERNAME\tUSERNAME\tHOSTNAME\tHOSTNAME\tLOGIN_TIME\tLOGIN_TIME\tLOGOUT_TIME\tLOGOUT_TIME DURATION"}' OFS='\t' | tac

我在 awk 中将标题添加到 END 语句。这样,在 tac 运行后,标题将位于开头。

我还将 awk 的 OFS 设置为一个选项卡,这样就不再需要 tr 步骤了。

我无法彻底测试它,因为我的 last 命令显然产生了与您的不同的格式。

写入文件

要将上述输出写入文件,我们使用重定向:将标准输出发送到文件:

last -w -F | awk '{print $1,$3,$5$6$7$8,$11$12$13$14,$15} END{print "USERNAME\tUSERNAME\tHOSTNAME\tHOSTNAME\tLOGIN_TIME\tLOGIN_TIME\tLOGOUT_TIME\tLOGOUT_TIME DURATION"}' OFS='\t' | tac >new.tsv

以上代码生成一个制表符分隔的文件。选择制表符分隔格式选项后,Excel 应该能够读取此文件。

如果想要一个逗号分隔的文件,那么我们需要做的就是将 \t 替换为 ,:

last -w -F | awk '{print $1,$3,$5$6$7$8,$11$12$13$14,$15} END{print "USERNAME,USERNAME,HOSTNAME,HOSTNAME,LOGIN_TIME,LOGIN_TIME,LOGOUT_TIME,LOGOUT_TIME DURATION"}' OFS=',' | tac >new.csv

如果我没记错的话,可以用 file->open->text file 在 excel 中打开它。

关于linux - 在输出文件中打印列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32897499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com