我有两个文件。第一个文件包含 html 代码:
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> inserthere </textarea>');
第二个文件如下所示:
A B C D E F G
我需要将第二个文件的内容放入 html 代码中inserthere
。因此,我想要的输出是:
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F G </textarea>');
或者
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F Ginserthere </textarea>');
我尝试过的:
sed -e '/inserthere/r file2' -e 'x;$G' file1 > file3
sed -n -i -e '/inserthere/r file2' -e 1x -e '2,${x;p}' -e '${x;p}' file1
f2="$(<file2)"
awk -vf2="$f2" '/inserthere/{print f2;print;next}1' file1
执行这些命令后,第二个文件的内容被放在第一个文件的末尾,而不是我想要的位置。
还有其他方法可以实现我想要的输出吗?
答案1
我认为您无法使用命令r
替换sed
行中间的文本。您可以用不太优雅的方式使用sed s
替换inserthere
的内容:file2
sed "s/inserthere/$(cat file2)/" file1 > file3
解释:
s
代替:/old/new/
$(cat file2)
将输出传递cat file2
给sed s
(命令替换)- 使用双引号允许
$
扩展
文件3:
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F G </textarea>');