замена пространственного символа с помощью sed или awk - PullRequest
1 голос
/ 29 мая 2020

У меня есть строка в файле данных

Times-New   $\Gamma$

, и я хочу заменить ее с помощью утилиты sed или awk (я бы предпочел использовать awk) на

/Symbol G

I мог заменить только один знак $, но потерпел неудачу для оставшегося текста.

Итак, я хочу

sed   's/Times-New   $\Gamma$/Symbol G/g'  case.dat

Не могли бы вы мне помочь?

1 Ответ

4 голосов
/ 29 мая 2020

Не могли бы вы попробовать следующие, написанные и протестированные с показанными образцами. Нам нужно экранировать \ и $, чтобы awk обрабатывал их как буквальный символ в программе.

awk '{gsub(/Times-New   \$\\Gamma\$/,"/Symbol G")} 1' Input_file

ИЛИ в соответствии с комментарием OP try (спасибо, сэр Анубхава, за добавление решения):

awk '{gsub(/Times-New[ \t]+(G|\$\\Gamma\$)/, "/Symbol G")} 1' Input_file


С GNU sed попробуйте:

sed -E 's/Times-New   \$\\Gamma\$/Symbol G/g' Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...