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
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
选项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
也许这对您的用例来说有点矫枉过正,但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