我有一个文件a.txt,格式如下:
aaaa
…
aaaa
现在想在每行结尾粘贴文字,要粘贴的文字在另一个文件b.txt,格式如下:
bbbb
cccc
dddd
…
每一行都不同
想达到的结果是,把b.txt粘贴到a.txt对应的行的结尾
比如b.txt第一行粘贴到a.txt第一行结尾,以此类推
请问在emacs里面要怎么做
补充,请教了一位大神,他给的方法是用evil
安装evil-mode,然后在a.txt里面用normal模式输入:read b.txt就可以了
我想请教是否还有别的办法,不借助evil的情况下
1 个赞
是直接在a.txt的第一行行尾插入b.txt吗,马上试试看
这样不能解决问题,它是直接在光标之后插入整个b.txt,没有实现行对行的粘贴
dcsjx
4
c-space 设置 mark
再
c-x r k 剪切矩形
c-x r y 粘贴矩形
aeghn
6
如果有使用 awk 条件的话,使用这个就够了
awk 'NR==FNR{a[FNR]=$0;next}NR>FNR{print a[FNR],$0}' f1 f2 > f3
可以使用,这个更好,谢谢大神
如果是gawk,这个命令适用吗,windows平台,我用上面的命令并没有成功
尝试之后还是没有结果,生成了一个空文档
awk ‘NR==FNR{a[FNR]=$0;next}NR>FNR{print a[FNR],$0}’ f1 f2 > f3
aeghn
11
之前的那个还是不行, 只能输出到 file2 的长度(我太菜了),然后想了个更笨的法子
awk 'NR==FNR{a[FNR]=$0;next}NR>FNR{b[FNR]=$0;next}; END{vlength=(length(a)<length(b)?length(b):length(a)); for(i=1; i<=vlength; i++) {printf "%s%s\n", a[i], b[i]}}' file1 file2 > file3
Youmu
13
paste -d '\0' file1 file2
这样才能保证2个文件的行合并后中间没空格
我编译了paste,可以实现,只是在每行合并的地方会多出换行符^M,这是windows下的特色
gawk应该是功能有残缺,我使用了几个表达式都没有输出
awk ‘{getline f2 < “file_2”; print $0"\t"f2}’ file_1
你可以试一下上面的这个在,看能不能实现