在LINUX中有一个文件a.txt每一行是123456,想把每一行放入b.txt的第二行最尾部。应该怎么操作十分感谢。

按照401rani写的用 sed -ie '2r a.txt' b.txt 但是这个插入到第三行里去了。想让他在第二行,行尾不换行。不知道怎么操作,谢谢各位的回签。

用vim同时打开两个文件,在normal模式下按ctrl+v进入VISUAL BLOCK 模式,选中a.txt的内容,按y复制,把光标移到b.txt第一行最后一个字符,按p粘贴,然后保存退出,搞定。

给个示范:

追问

首先谢谢您的回答,如果有100百个这样的文件,一个一个打开复制太麻烦了。有没有不打开文件直接插进去的方法 像echo a.txt >>b.txt这样子的。一行命令就能搞定的。谢谢

追答

直接也有,你得学awk或者sed

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-15
如果想把a.txt文件的内容插入到.txt第二行后,可以这样操作:
sed -ie '2r a.txt' b.txt追问

你好,谢谢你的回复。依照你的做法。是将原来第二行变为了第三行。我想是在第二行结尾处加入内容。谢谢

追答

不知道了,请高手吧

来自:求助得到的回答
第1个回答  2012-12-15
vi b.txt
%s/$/123456
:wq
第2个回答  2018-07-08

示例:将/etc/hosts文件与 a.txt 拼接(无缝对接)

第一步:新建一个c.txt

第二步:拼接 paste -d '' /etc/hosts a.txt|awk '{print $5 $6}'|head -1 >c.txt

第三步:重命名 mv  c.txt  /etc/hosts

注意:第二步 paste命令拼接的文件有先后顺序,先写在前,后写在后

head -1(小写的壹)是为查看效果,文件很大时不可能都显示

$5 $6 就是相当于表格中的列一样,$显示列的固定格式符号

每一列的分割依靠什么呢?这里取的是 空格,而默认情况下awk -F 取的就是

空格作为分隔符,所以就省略了;非要写可以这样 awk -F ' '  '{print . . .

(两个单引号中间加个空格)

相似回答