vim或sed/awk/etc - 用空格填充所有行到固定宽度

mat*_*fee 18 vim awk sed

如何将文件的每一行填充到一定的宽度(比如63个字符宽),如果需要填充空格?

现在,让我们假设所有行都保证少于63个字符.

我使用vim,并希望有一种方法在那里(有某种printf %63s current_line命令?),我可以选择我想要应用填充的行.

但是,我当然愿意使用sed,awk或某种linux工具来完成这项工作.

干杯.

kev*_*kev 32

vim

:%s/.*/\=printf('%-63s', submatch(0))
Run Code Online (Sandbox Code Playgroud)

  • @ mathematicallcoffee类型`:help:s\=`阅读更多 (2认同)

小智 23

awk '{printf "%-63s\n", $0}' testfile > newfile
Run Code Online (Sandbox Code Playgroud)


ib.*_*ib. 7

在Vim中,我会使用该命令

:%s/$/\=repeat(' ',64-virtcol('$'))
Run Code Online (Sandbox Code Playgroud)

如果要填充的文本仅为ASCII且不包含制表符,则可以使用col()而不是virtcol().