Есть ли способ -повторно выровнять табличные данные в терминале после фильтрации с помощью grep?

для дальнейшего использования

  1. удалить cmus
  2. удалить папку cmus, расположенную по адресу.config/cmus
  3. затем переустановите cmus
3
17.04.2021, 12:47
1 ответ

Простым решением, которое может сработать, является передача данных через column -t. Это выровняет столбцы на основе пустых символов (, табуляции и пробелов )в данных.

Ваш первый вывод:

$ column -t file1
u_str  LISTEN  0  0  /run/systemd/private            9683   *  0
u_str  LISTEN  0  0  /run/systemd/fsck.progress      9690   *  0
u_str  LISTEN  0  0  /run/systemd/journal/stdout     9705   *  0
u_str  LISTEN  0  0  /run/user/1000/systemd/private  16088  *  0

Я бы сказал, что все в порядке.

Ваш второй выход:

$ column -t file2
Filesystem   1K-blocks  Used    Available  Use%  Mounted         on
devtmpfs     10240      0       10240      0%    /dev
shm          8131012    0       8131012    0%    /dev/shm
rpool/ROOT   923596     820504  86708      91%   /
tmpfs        1626204    1900    1624304    1%    /run
/dev/sdb1    65390      33432   31958      52%   /boot
cgroup_root  10240      0       10240      0%    /sys/fs/cgroup

Обратите внимание, как это слово onполучает столбец в себя? Это связано с пробелом в строке Mounted on. Это может не быть большой проблемой для данного конкретного случая, но вы должны знать, что любой символ пробела или табуляции будет использоваться как разделитель столбцов.

Если вы знаете, какой символ-разделитель используется в данных, вы можете указать это для columnс опцией -s, например, -s $'\t'в bashили zsh, чтобы использовать только табуляцию.

7
28.04.2021, 22:52

Теги

Похожие вопросы