2017-09-26 101 views
1

我需要在另一个文件的特定位置追加一个文件。 我得到了行号的话,我的文件是:在bash中的另一个文件的中间追加一个文件

file1.txt 

上午

饼干

,而第二个是

file2.txt 

一个

命名

因此,该解决方案后,FILE1.TXT应该像

上午

一个

命名

饼干

的解决方案应包含“和/在这两个文件中的字符存在兼容。

任何工具就可以了,只要它是天然的(我的意思是,没有任何新的软件安装)

谢谢!

回答

2

请问您是否可以尝试以下方法,并告诉我是否可以帮助您。

awk 'FNR==3{system("cat file2.txt")} 1' file1.txt 

输出如下。

I 
am 
a 
black 
dog 
named 
Cookie 

说明:这里检查,如果行数为3,而读INPUT_FILE命名FILE1.TXT,如果是,那么用awk的系统工具,它可以帮助我们调用shell的命令,那么我打印文件2。使用cat命令的txt。然后提到1将打印来自file1.txt的所有行。因此,我们可以将来自file2.txt的行连接到file1.txt中。

+1

这个工作,以决定在文件1 headtail参数!要理解你的答案......翻译是: 当你到达第3行cat file2.txt然后停下来? 有趣的使用系统().. thnx! –

+0

@WyattGillette,不客气。很高兴它帮助你,我只是添加了相同的解释,请让我知道你是否有任何其他疑问。 – RavinderSingh13

+1

仔细清楚,再次感谢@ RavinderSingh13 –

1

除了什么RavinderSingh13使用sed建议另一种选择: 向file2.txt文本中的特定行之后添加到file1.txt

sed -i '2 r file2.txt' file1.txt 

输出:

I 
am 
a 
black 
dog 
named 
Cookie 

而且添加的文件后,匹配图案:

sed -i '/^YourPattern/ r file2.txt' file1.txt 
+0

也这一个工作,我给第一个由于按时间顺序的答案:) btw,这意味着: 编辑流在第2行插入file2.txt在file1.txt?看起来更简单... –

+0

意思是在file1的第二行之后添加file2的行。它不像其他答案那样调用'cat'。 – Ardit

+0

yup很容易与'r',我怎么可能不考虑它 –

1

如何

head -2 file1 && cat file2 && tail -1 file1 

你可以指望的行数使用

wc -l file1 
+1

创造性在这里工作 它的工作,很好的解决方法 一点是:如果文件是巨大的(例如5000+行)将是一个问题来计算尾部参数...容易找到头一个(cat -n和grep) 可以这样做: tac file2> file3 && cat -n file3 | grep狗 找到尾巴参数,艰难...有趣的方式和工作 –

相关问题