Вы можете использовать sed
для исключения /
из путей:
someFile="/path/to/some/file"
sed -e 's./..g' <<< "${someFile}
pathtosomefile
Это то, что вы пытаетесь сделать (с 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'
Это то, чем я пользуюсь. Сохраняет исходный файл и создает новый файл с вашими результатами.
sed 's/-/ /g' file.txt > newfile.txt
Попробуйте сначала на копии, просто посмотреть.