我有一个包含数百行的脚本,而我的搜索和替换命令可以工作并在多个位置删除它。
要替换的文本位于另一个文件中,我的搜索和替换工作完美,但不幸的是我只想替换块文本的第一个实例。
ORIGINAL_FILE TEXT_FILE NEW_FILE
将 RECOMMENDED 和 STATIC 之间的所有文本替换为 TEXT_FILE 中的内容
sed -n -e "1,/RECOMMENDED/ p" -e "/STATIC/,$ p" -e "/RECOMMENDED/ r $TEXT_FILE" $ORIGINAL_FILE >$NEW_FILE
正如我所说,这可行,但有多个位置可以使用 RECOMMENDED 和 STATIC,而我只想更改第一个实例。
任何帮助是极大的赞赏
答案1
如果你这样做:
sed -n -e '1,/RECOMMENDED/ p' \
-e '/STATIC/,$ {p;d;}' \
-e "/RECOMMENDED/ r $TEXT_FILE" < "$ORIGINAL_FILE" > "$NEW_FILE"
然后/RECOMMENDED/
在行匹配之后将不会匹配,/STATIC/
因为我们d打印后删除它们。