1

This is currently what i am dealing with:

$cat k    
23
22
35
24
42
:
:
36

I have file like this and I want to use vim convert it like this.

22,23,35,24,42,8,......,36 

Please Help

4

2 回答 2

7

选项1:

你可以执行:

:%s/\n/,/

,这会在行尾留下一个额外的逗号,您可以$x将其删除。

这将在没有额外的结束逗号的情况下进行替换:

:1,$-1s/\n/,/

选项2:

使用我的加入插件:http ://www.vim.org/scripts/script.php?script_id=4516

有了它,你只需要:

:%J ','

选项 3 (awk)

如果你也接受了 awk,你不需要自己处理逗号,让 awk 自动为你添加它们。它可能很简单:

awk -F"\n" '$1=$1' RS="" OFS="," file
于 2013-04-25T22:48:33.007 回答
0

也许这对您的用例来说有点矫枉过正,但https://github.com/salsifis/vim-transpose/插件也可以做到这一点。此外,它将s列(数字)转换为s行。

安装插件后,您可以按如下方式实现:

let g:transpose_csv_default_separator = ','
TransposeCSV

它还会转换

23,14
22,64
35,12
24,43
42,65
:,:
:,:
36,19

进入

23,22,35,24,42,:,:,36
14,64,12,43,65,:,:,19
于 2021-04-11T10:21:32.580 回答