这是我正在处理的问题:
$cat k
23
22
35
24
42
:
:
36
我有这样的文件,我想像这样使用vim转换它。
22,23,35,24,42,8,......,36
请帮助
答案 0 :(得分:6)
选项1:
你可以执行:
:%s/\n/,/
这会在行尾留下额外的逗号,
,您可以$x
删除它。
这将替换没有额外的结尾逗号:
:1,$-1s/\n/,/
选项2:
使用我的加入插件:http://www.vim.org/scripts/script.php?script_id=4516
用它你只需要:
:%J ','
选项3(awk)
如果你也接受了awk,你不需要自己处理逗号,jst让awk自动添加它们。它可以很简单:
awk -F"\n" '$1=$1' RS="" OFS="," file
答案 1 :(得分: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