нужно заменить шаблон в файле пробелами

Вы можете использовать sedдля исключения /из путей:

someFile="/path/to/some/file"
sed -e 's./..g' <<< "${someFile}
pathtosomefile
-1
21.02.2020, 20:28
2 ответа

Это то, что вы пытаетесь сделать (с sed, у которого есть опция -Eдля включения ERE, например. GNU sed и OSX/BSD sed )?

sed -E 's/([0-9]{3})-([0-9]{2})-([0-9]{4})/\1 \2 \3/g'

напр.:

$ echo '333-44-5555' | sed -E 's/([0-9]{3})-([0-9]{2})-([0-9]{4})/\1 \2 \3/g'
333 44 5555

Я предполагаю, что у вас есть другие -в вашем тексте, которые вы НЕ хотите преобразовывать в пробелы, иначе простое tr '-' ' ' < file— это все, что вам нужно.


РЕДАКТИРОВАТЬ в соответствии с вашим комментарием ниже, похоже, это то, что вы на самом деле хотите:

sed -E 's/[0-9]{3}[- ][0-9]{2}[- ][0-9]{4}/ /g'
0
28.04.2021, 23:22

Это то, чем я пользуюсь. Сохраняет исходный файл и создает новый файл с вашими результатами.

sed 's/-/ /g' file.txt > newfile.txt

Попробуйте сначала на копии, просто посмотреть.

-1
28.04.2021, 23:22

Теги

Похожие вопросы