Awk 仅在变量和字符串之前打印字符串
Awk printing only strings before variables and strings
我正在尝试使用 awk 打印将来自最后一个命令的数据转换为纪元时间。该代码始终在 10.14.5 上运行,有时在 10.13.6 上运行。当我今天早上上班时它运行良好,然后大约 11 点开始给我错误。
基本上,awk 打印文字字符串,然后是换行符,然后是文字字符串和变量。例如,
如果 $1="Hello",则:
awk '{print ,"World"}'
实际上是在打印“世界
你好世界
给出错误的实际代码行是这样的:
x=$(last -1 $a | awk '{print " " " " " " ":00 EDT "}')
应该将 x 设置为 "Fri May 31 12:43:00 EDT " 例如,它将 x 设置为 " :00 EDT
5 月 31 日星期五 12:43:00 美国东部时间“
编辑:我应该说代码行中的 $a 将设置为计算机上的用户名
在我的 High Sierra 系统上,last -1 barmar
没有打印任何有用的信息。我的 Mac 已经运行了 9 天(自从我安装了最新的安全更新后)。 运行 需要 8 秒,并且只打印:
wtmp begins Fri May 31 12:53
所以有一个空行,然后是 wtmp
开始的行,这似乎总是当前时间。
因此 awk
脚本运行正常。第一行没有任何字段,因此所有 $n
值都将为空,您只得到 :00 EDT
。第二行包含 wtmp begins
行,并在输出中创建 Fri May 31 12:48:00 EDT
(即使您使用了 -1
,它仍然会产生两行输出)。当你组合它们时,你会得到
$ echo "$x"
:00 EDT
Fri May 31 12:48:00 EDT
Terminal 'last' command doesn't display login history 声称 sudo last
应该有效,但它不适合我。
How do you stop wtmp from erasing? 建议从 /var/log/monthly.out
.
获取你想要的信息
我正在尝试使用 awk 打印将来自最后一个命令的数据转换为纪元时间。该代码始终在 10.14.5 上运行,有时在 10.13.6 上运行。当我今天早上上班时它运行良好,然后大约 11 点开始给我错误。
基本上,awk 打印文字字符串,然后是换行符,然后是文字字符串和变量。例如, 如果 $1="Hello",则:
awk '{print ,"World"}'
实际上是在打印“世界 你好世界
给出错误的实际代码行是这样的:
x=$(last -1 $a | awk '{print " " " " " " ":00 EDT "}')
应该将 x 设置为 "Fri May 31 12:43:00 EDT " 例如,它将 x 设置为 " :00 EDT 5 月 31 日星期五 12:43:00 美国东部时间“
编辑:我应该说代码行中的 $a 将设置为计算机上的用户名
在我的 High Sierra 系统上,last -1 barmar
没有打印任何有用的信息。我的 Mac 已经运行了 9 天(自从我安装了最新的安全更新后)。 运行 需要 8 秒,并且只打印:
wtmp begins Fri May 31 12:53
所以有一个空行,然后是 wtmp
开始的行,这似乎总是当前时间。
因此 awk
脚本运行正常。第一行没有任何字段,因此所有 $n
值都将为空,您只得到 :00 EDT
。第二行包含 wtmp begins
行,并在输出中创建 Fri May 31 12:48:00 EDT
(即使您使用了 -1
,它仍然会产生两行输出)。当你组合它们时,你会得到
$ echo "$x"
:00 EDT
Fri May 31 12:48:00 EDT
Terminal 'last' command doesn't display login history 声称 sudo last
应该有效,但它不适合我。
How do you stop wtmp from erasing? 建议从 /var/log/monthly.out
.