Как показано в примере ниже, я хочу оставить только слово перед first
'Джон'.
Однако шаблон, который я применил, похоже, заменяет Джона от конца до головы. Поэтому мне нужно дважды позвонить в sed.
Как мне найти правильный путь?
PATTERN="I am John, you are John also"
OUTPUT=$( echo "$PATTERN" | sed -r "s/(^.*)([ \t]*John[ ,\t]*)(.*$)/\1/" )
echo "$OUTPUT"
OUTPUT=$( echo "$OUTPUT" | sed -r "s/(^.*)([ \t]*John[ ,\t]*)(.*$)/\1/" )
echo "$OUTPUT"
Я ожидаю, что звоню только один раз. Поскольку, если «Джон» появится несколько раз, это будет проблемой.
В соответствии с процедурой, приведенной выше, он будет генерировать вывод в виде:
Во-первых, оно соответствует и обрезает слово после последнего Иоанна; затем первый Джон.
Я Джон, а вы
Я
Я хочу выполнить один раз и получить
Я