Linux

sed + 刪除兩個匹配模式之間的所有行,而不是添加一個單詞作為 x=yes

  • November 2, 2021

這裡的腳本範例

當我在兩個匹配模式之間成功刪除時(第一個是cat <<EOF | more,第二個是read x

劇本

#!/bin/sh

cat <<EOF | more

.
.
.
.


EOF

echo -n "Do you agree with the License? [yes/no] "
read x

.
.
.

我的 sed 命令

sed -i '/^cat <<EOF | more/,/^\read x/d' test.sh

現在我想添加到 sed 功能,以添加參數 x=yes insted 所有刪除行,如上

是否可以在我的 sed 命令中添加此功能?

預期結果範例

#!/bin/sh

x=yes

您可以使用aappend 命令附加文本:

sed -e '/^cat <<EOF | more/ax=yes' -e '//,/^\read x/d' 

至少對於 GNU sed,即使該行本身被刪除,它也會執行。您只想附加一次,因此只需使用第一個地址 fora和範圍 for d。空表達式重複前一個表達式。

引用自:https://unix.stackexchange.com/questions/675842