vim将一列数据复制到文件另一列

有两个文件:file1、file2

wenzg@localhost:~/Downloads/Chrome$ cat ~/Downloads/Chrome/file2
title1
title2
title3
title4

wenzg@localhost:~/Downloads/Chrome$ cat ~/Downloads/Chrome/file1
1,desc1
2,desc2
3,desc3
4,desc4

现在向将file2中的内容对应放到file1中的第二列,即对应数字后面,比如

1,title1,desc1
2,title2,desc2
3,title3,desc3
4,title4,desc4

方法1:(这种方式很快,但是只适用字符长度相同的,或者将要插入的列在首或尾的)
1、vim -O ~/Downloads/Chrome/file1 ~/Downloads/Chrome/file2
2、将光标移动到file2中的title1的t,然后ctrl+v,然后shift+v,向右拖拉,全部选中后,y复制
3、将光标移动到file1中的1,desc1中的,然后按ctrl+v,shift+v左右只选中“,”这一列,然后shift+a,输入“,”,再按esc,可以看到所有行都插入成功,然后光标移动到1,desc1中的,直接按p,这贴成功

方法2:
export no=0; while read line; do no=`expr $no + 1`; arr1[$no]=$line; done < ~/Downloads/Chrome/file1; no=0; while read title; do no=`expr $no + 1`; if [ -z ${arr1[$no]} ];then str=’null’; else str=${arr1[$no]}; fi; id=`echo $str |cut -d”,” -f1`; desc=`echo $str |cut -d”,” -f2`; echo $id”,”$title”,”$desc; done < ~/Downloads/Chrome/file2;

此条目发表在 vim 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>