我将 mkfs 的输出转储到日志文件中,但它以交互方式显示其进程,打印退格键以使光标返回,然后打印空格以删除,然后再次执行退格键并打印新消息。
在日志里看起来乱糟糟的。以下是我找到的办法,把一组 BS 合并到单个空间里。
# echo -e "AAABBB\x08\x08\x08\x08\x08\x08CCC" | sed -e 's/\(\x08\)\1\+/\1/g' -e 's/\(\x08\)/x/'
AAABBBxCCC
但是有没有更好的方法可以用正则表达式将 BSs + 空格 + BSs ... 序列折叠成单个空格字符?我可以编写二进制文件来实现,但在我看来,这有点矫枉过正……
示例输入为
# echo -e "123\x08\x08\x08 \x08\x08\x08456 789"
转换为
123 456 789
更新:一开始我说的是 mkfs 输出的。我给你看个例子,方便你理解字符集。
mke2fs 1.47.0 (5-Feb-2023)
fs_types for mke2fs.conf resolution: 'ext4'
Discarding device blocks: 0/16463361572864/1646336 done
Filesystem label=data_volume
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
412080 inodes, 1646336 blocks
82316 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1686110208
51 block groups
32768 blocks per group, 32768 fragments per group
8080 inodes per group
Filesystem UUID: c27f71c7-2d9e-4a33-9d54-449ab3e2f378
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 0/51 done
Writing inode tables: 0/51 done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: 0/51 done
退格键未显示在上面的窗口中(复制粘贴后它们被删除)。