smo*_*ris 32 unix bash shell-script textfiles text-processors
假设我有一个这样的文本文件:
# custom content section
a
b
### BEGIN GENERATED CONTENT
c
d
### END GENERATED CONTENT
Run Code Online (Sandbox Code Playgroud)
我想GENERATED CONTENT
用另一个文件的内容替换标签之间的部分。
什么是最简单的方法来做到这一点?
Pet*_*r.O 38
lead='^### BEGIN GENERATED CONTENT$'
tail='^### END GENERATED CONTENT$'
sed -e "/$lead/,/$tail/{ /$lead/{p; r insert_file
}; /$tail/p; d }" existing_file
Run Code Online (Sandbox Code Playgroud)
newContent=`cat new_file`
perl -0777 -i -pe "s/(### BEGIN GENERATED CONTENT\\n).*(\\n### END GENERATED CONTENT)/\$1$newContent\$2/s" existing_file
Run Code Online (Sandbox Code Playgroud)
小智 5
使用heredoc和ed行编辑器:
ed -s FILE1 <<EOF
/### BEGIN GENERATED/+,/### END GENERATED/-d
/### BEGIN GENERATED/ r FILE2
w
q
EOF
Run Code Online (Sandbox Code Playgroud)
Heredoc 中的第一行是删除 ( ) thed
之后的行和 ( ) the之前的行+
### BEGIN GENERATED
-
### END GENERATED...
第二行是插入FILE2
到该行之后### BEGIN GENERATED
。
归档时间: |
|
查看次数: |
26040 次 |
最近记录: |