我有一个包含以下内容的文本文件(实际文件包含数千行)
abcd
xyas
sasss
jddks
asa
sasa
lkkkss
asasd
Run Code Online (Sandbox Code Playgroud)
我想要以下格式的输出。
abcd xyas sasss jddks
asa sasa lkkkss asasd
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Jos*_* R. 10
如果您只想将每 4 行合并为一行,则可以使用递归宏来完成:
ggqaqqa4Jj@aq@a
Run Code Online (Sandbox Code Playgroud)
解释:
gg
转到文件开头qaq
清除寄存器中任何先前存储的宏 a
qa
开始在寄存器中录制宏 a
4J
将 4 行合二为一j
下一行@a
让寄存器中的宏a
调用自身q
停止录音@a
调用寄存器a
中的宏,它将继续处理文件,直到完成。Perl 中的替代方案
perl -ni -e 'chomp;print $_, $.%4? " ":"\n"' your_file
Run Code Online (Sandbox Code Playgroud)
参考