awk '/[a-z]\+|\+[a-z]/{print NR, echo ":", $0, echo "[SHOULD BE IN FORMAT [<space>operator<space>]"}' file.txt
У меня есть какое-то требование, например, если нет места до или после того, как любой оператор должен через ошибку в оболочке. Так что я придумал что-то вроде этого:Как найти точное совпадение в скрипте оболочки, которое исключает символы до и после матча?
если нет пробела перед
+
или нет места после+
будет через сообщение.Но если я делаю тот же случай для
-
оператора какawk '/[a-z]\-|\-[a-z]/{print NR, echo ":", $0, echo "[SHOULD BE IN FORMAT [<space>operator<space>]"}' file.text
, хотя она работает в следующих случаях:
[ a-b, a -b, a- b ]
но терпит неудачу в следующем случае, какесли в file.text есть некоторая линия, как
/* this->name = "string" */ //here it is showing the message like echo "[SHOULD BE IN FORMAT [<space>operator<space>]"}' which is not desired because it is also searches for - in ->.
Итак, пожалуйста, предложите исправить это?
Пожалуйста, уделите время правильному оформлению вашей вещи. –