所以我用了:
getent passwd $2 | awk -F: '{print "|Username: " $1 "\n|Password: " $2 "\n|Uid: " $3 "\n|Gid: " $4 "\n|Comment: " $5 "\n|Home: " $6 "\n|Shell: " $7 "\n"}'
将用户信息输入到一个整洁的列表中。
我想对文件夹做同样的事情。我想要来自“ls -l”命令的所有信息,但它不是像一个测试块一样出现,而是希望它逐个列出。
我可以将awk
命令与 一起使用吗ls
?我可以使用之前使用的相同方法吗?
答案1
由于您使用的是 Linux,因此您应该查看stat
具有正确格式的命令 ( -c
, --format
)。鲜为人知的功能,该格式接受 C 风格的长度说明符,因此请尝试例如:
stat -c 'File: %-40n Size: %6s Flags: %8A' *
您可以在格式中放置任意字符串,甚至可以在其中放置换行符(使用语法$'string'
):
stat -c $'--------------\nFile: %n\nSize: %s\nFlags: %A' /boot/*
--------------
File: /boot/abi-4.13.0-45-generic
Size: 1501528
Flags: -rw-r--r--
--------------
File: /boot/config-4.13.0-45-generic
Size: 213220
Flags: -rw-r--r--
--------------
File: /boot/config-4.15.0-72-generic
Size: 217468
Flags: -rw-r--r--
--------------
File: /boot/config-4.15.0-74-generic
Size: 217503
Flags: -rw-r--r--
--------------
File: /boot/config-4.15.0-76-generic
Size: 217503
Flags: -rw-r--r--