貓myfile.sql,除去多餘的空間
DELIMITER $$
USE `AA4`$$
DROP TRIGGER /*!50032 IF EXISTS */ `AT_Card_INSERT_Trigger`$$
CREATE
/*!50017 DEFINER='root'@'%' */
TRIGGER `AT_Card_INSERT_Trigger` AFTER INSERT ON `card`
FOR EACH ROW BEGIN
下按預期工作,並刪除定義者條款。
sed -e 's/DEFINER=[^*]*\*/\*/' myfile.sql
但它不適用於符號之前或之後的空格。對於例如如果我有這樣一行...
/*!50017 DEFINER = 'root'@'%' */
然後,我需要一個sed聲明是這樣的......
sed -e 's/DEFINER\ =\ [^*]*\*/\*/' myfile.sql
但也有2個possibilites與空間(沒有空間之前,沒有空間之後)。 「=」之前或之後可能有超過1個空格也是可能的。 我該如何處理這一切?
單元素類不是必需的,但它們是澄清單個空間的不錯選擇。 –
我習慣了括號,因爲sed(至少在Mac上)沒有'\ s',所以我經常寫'[\ t]'或'[\ t \ n \ r]''。 :) –
總是有'perl -pe'或'sed -E'和'[[:space:]]''。 –