使用sed或其他命令行工具将B.txt的内容添加到A.text中的某个部分?

时间:2014-01-19 23:11:30

标签: regex bash sed

我正在尝试按标题说明:将B.txt中的所有文本添加到A.txt中的某个特定位置/部分。 我试图用cat和sed完成这个,但我仍然是这些工具的新手,不知道我的目标是否可以用这些完成。

这是一个更直观的命令行思路:

cat A.txt | sed "s/some_part_in_A/some_part_in_A+contents_of_B.txt/" > C.txt

或没有猫...

sed "s/some_part_in_A/some_part_in_A+contents_of_B.txt/" A.txt > C.txt

或者别的东西......

连接A和B得到C.txt然后以某种方式“移动”C的B部分(它将在底部)到A(C)的某个部分。希望听起来不会太混乱lol

我错过了什么?我需要使用一些额外的工具吗?变量怎么样?以某种方式将B.txt的内容弹出到变量中,然后在sed中使用该变量? 对不起,我有点像这样的菜鸟,我只是想用一些常识来解决这个问题。一些指导会有所帮助。提前谢谢!

编辑: 的

仅匹配 ONE LINE ,然后从文件中插入文字:

sed '/some_part_in_A/rB.txt' A.txt > C.txt

感谢Beta!

匹配两条线(或更多条),然后从文件中插入文字:

sed "/line_one/N;/line_one\n.line_two/rB.txt" A.txt > C.txt

注意,首先说明line_one然后是N然后是line_one,然后是\ n(并且需要一个。或者wutever来捕获\ n和line_two之间的任何内容,在我的例子中是TAB char)然后是line_two,最后是r到“读取“然后将B.txt的内容插入A.txt,但将结果输出到C.txt

1 个答案:

答案 0 :(得分:3)

sed '/some_part_in_A/rB.txt' A.txt > C.txt