Bash
使用 sed 去除字元串末尾的單詞模式
我有以下字元串:
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*$//'