【发布时间】:2017-11-16 06:50:49
【问题描述】:
我正在尝试使用 perl 格式化来格式化 /etc/passwd 文件
这是我目前想出的:
#!/usr/bin/perl
use warnings;
format MYFORMAT =
@<<<<<<<<<<<<<<<| @<<<<<<<<<<<<<<<| @<<<<<<<<<<<<<<<
$username, $UID, $name
.
$username = `cut -d: -f1 /etc/passwd`;
$UID = `cut -d: -f3 /etc/passwd`;
$name = `cut -d: -f5 /etc/passwd`;
$~ = "MYFORMAT";
write;
我没有收到任何警告或错误。格式化有效,但问题是,它只显示 etc/passwd 文件的第一行。我只得到 root、0 和 root 作为用户名、UID 和名称。
我需要为每列打印的所有用户名、UID 和名称。我不知道自己做错了什么,因为当我运行 bash 命令以仅获取终端内的用户名时,它会显示所有用户名。但它不会在脚本内部执行此操作。
【问题讨论】:
-
我没有收到任何警告,我更改了代码的格式。