有时,从命令输出数据中选择/取消选择特定列很有用,但这些列并不总是在联机帮助页中按名称列出。我们怎样才能找到这些名字呢?
例如
运行两个命令来演示输出
$ sudo journalctl -eu NetworkManager -o short
Feb 06 06:52:56 user NetworkManager[713]: <info> [1707206156.8193] device (tun0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'external')
Feb 06 06:52:56 user NetworkManager[713]: <info> [1707206156.8195] device (tun0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'external')
Feb 06 06:52:56 user NetworkManager[713]: <info> [1707206156.8207] device (tun0): Activation: successful, device activated.
此输出似乎包含 6 个不同的列(伪命名以突出显示)
日期、用户、进程、类型、日期2、消息
现在,如果我们运行第二个命令,lsblk
我们可以看到列已经分配了名称。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
zram0 253:0 0 7.3G 0 disk [SWAP]
nvme0n1 259:0 0 238.5G 0 disk
--output
我们可以通过运行来选择我们需要的列columns
$ lsblk --output NAME,SIZE
NAME SIZE
zram0 7.3G
nvme0n1 238.5G
man lsblk
页面提供有关列的帮助,而许多其他命令不提供
-o, --output list
Specify which output columns to print. Use --help to get a list of all supported columns. The columns may affect tree-like output. The default is to
use tree for the column 'NAME' (see also --tree).
The default list of columns may be extended if list is specified in the format +list (e.g., lsblk -o +UUID).
如果手册页中未列出,我们如何识别/命名列(即使我们无法选择/定位它)?