我最近问了一个类似的问题How To Insert File Contents After Line Match While Escaping Backslash只有意识到我需要做相反的事情。插入文件内容一行前匹配,同时转义反斜杠
使用从问题的代码,我曾尝试:
sed '/<\\tag>/i file2' file1
第2次尝试:
awk '/<\\tag>/{print;system("cat File2.txt");before} 1' File1.txt
但是,我无法得到它的比赛之前插入一行。
例子:
FILE1.TXT
Hello <[World!]> 1
Hello <[World!]> 2
FILE2.TXT:
<thanks>
<tag>
<example>
<new>
<\new>
<\example>
<\tag>
<\thanks>
所需的输出:
<thanks>
<tag>
<example>
<new>
<\new>
<\example>
Hello <[World!]> 1
Hello <[World!]> 2
<\tag>
<\thanks>
如果你能请帮我插入的文件内容后的内容在逃避反斜杠的情况下,我会很感激。
它可能在'sed'中,但它是丑陋的,如果匹配在最后一行,则不起作用。 'sed'/ <\\tag>/{r file1.txt; H; d; }; H;小号/.*//; X; s/^ \ n //'file2.txt' – Kevin
嘿凯文,谢谢你的尝试。我得到这个'sed:-e表达式#1,字符0:不匹配'{''检查时 – DomainsFeatured