Bash

使用 sed 去除字元串末尾的單詞模式

  • November 20, 2018

我有以下字元串:

ksh -x SCRIPT2.ksh $BUSSINESSDATE & PID=$!; ksh -x SCRIPT1.ksh $BUSSINESSDATE & PID=$!;

我想去掉最後一句話& PID=$!;。期望的結果是:

ksh -x SCRIPT2.ksh $BUSSINESSDATE & PID=$!; ksh -x SCRIPT1.ksh $BUSSINESSDATE

注意:我確實& PID=$!;在字元串中間,我只需要去掉包含的最後一個單詞& PID=$!;

我正在使用sed實現這一目標。但它似乎沒有產生預期的輸出。

sed 's/\(\& PID=\$\!\).*$//'
sed -e 's/& PID=\$\!;$//'

朝向末端將其$錨定到字元串的末端。

到目前為止,所有答案都很好,但是對於這個具體範例,您可以節省時間並少寫幾個字元:

sed 's/ & [^ ]*$//'

甚至更好

sed 's/ & \S*$//'

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