PKM*_*PKM 4 command-line text-processing
我有两个文件。第一个包含 html 代码:
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> inserthere </textarea>');
Run Code Online (Sandbox Code Playgroud)
第二个文件看起来像这样:
A B C D E F G
Run Code Online (Sandbox Code Playgroud)
我需要将第二个文件的内容放入html代码中inserthere。所以,我想要的输出:
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F G </textarea>');
Run Code Online (Sandbox Code Playgroud)
或者
document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F Ginserthere </textarea>');
Run Code Online (Sandbox Code Playgroud)
我试过的:
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
Run Code Online (Sandbox Code Playgroud)
在这些命令之后,第二个文件的内容被放在第一个文件的末尾而不是我想要的地方。
有没有其他方法可以实现我想要的输出?
我认为您无法使用r命令sed来替换行中间的文本。您可以使用sed s以不雅的方式替换inserthere为的内容file2:
sed "s/inserthere/$(cat file2)/" file1 > file3
Run Code Online (Sandbox Code Playgroud)
说明:
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>');
Run Code Online (Sandbox Code Playgroud)