/etc/fstab
column -te
私はパイプを通して素晴らしいフォーマットのテーブルを得るのがどれほど良いかと思いました。
しかし、column
もちろん、コメント行とマウントポイント定義は認識されないため、コメントもすべてのスペースで分割され、テーブル列形式で指定されます。
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=8fa99d69-8dac-4aca-bb61-90f753ba5169 / btrfs defaults,subvol=@rootfs,metadata_ratio=6 0 1
# /home was on /dev/sda2 during installation
UUID=8fa99d69-8dac-4aca-bb61-90f753ba5169 /home btrfs defaults,subvol=@home 0 2
column
で始まらないフォーマット行だけを作成する方法はありますか#
?
fstab
編集:上記の例が実際にBtrfsに有効であることを明確にする必要があるようです。サブボリュームsubvol
とインストールオプションを使用して別々にインストールできますsubvolid
。
これはまた、最初の列のデバイスがfstab
必ずしも一意である必要はないことを意味します。
ベストアンサー1
私の考えに実用的な解決策は、ファイル全体がcolumn
機能するようにし、コメント行の複数のスペースを単純に縮小することです。
column -t /etc/fstab | sed '/^#/ s/ \{1,\}/ /g'
それ以外の場合は、行に番号を付け、コメント行とコメント以外の行を別々に処理し、それらをすべて貼り付ける以外にこれを行う方法はありません。
sort -nk1,1 \
<(nl -nln /etc/fstab | grep -vE '^[[:digit:]]+[[:space:]]+#'| column -t | sed 's/ \{1,\}/\t/') \
<(nl -nln /etc/fstab | grep -E '^[[:digit:]]+[[:space:]]+#') \
| cut -f2-