Я пытаюсь придумать оператор sed, который будет соответствовать регулярному выражению, чтобы включать каждую строку, которая не начинается с обратной кавычки `.
Цель состоит в том, чтобы добавить что-то в начало каждой строки, которая не начинается с обратной кавычки.
Обратная кавычка может стоять в начале строки или предшествовать одному или нескольким пробелам (или табуляции), любой другой строке, с которой мне нужно сопоставиться, даже строкам, в начале которых есть обратная кавычка не .
Вот что у меня есть до сих пор:
cat myfile.txt
`this line starts with backtick`
`this one does too, but there are some spaces`
!some stuff on May 14 19:52:58 2020
more stuff *(&) 243123123123
indented stuff
indented stuff
string here that is nothing special
*here is an asterisk
match `this line`
1 number one
2 number two
`ignore this one`
А вот мое выражение sed (на Mac).
sed -e 's/^\([^[\s*`].*\)/--matched--\1/g' myfile.txt
`this line starts with backtick`
--matched-- `this one does too, but there are some spaces`
--matched--!some stuff on May 14 19:52:58 2020
--matched--more stuff *(&) 243123123123
--matched-- indented stuff
--matched-- indented stuff
string here that is nothing special
*here is an asterisk
--matched-- match `this line`
--matched-- 1 number one
--matched-- 2 number two
--matched-- `ignore this one`
Изменить: ясность