2012-02-08 6 views

ответ

25

Звездочка (*) означает «ноль или больше предыдущий пункт ".

Если вы хотите, чтобы соответствовать любому символу использовать

sed -i 's/string-./string-0/g' file.txt 

Если вы хотите, чтобы соответствовать любой строке (т.е. любой одиночный символ ноль или более раз) использовать

sed -i 's/string-.*/string-0/g' file.txt 
+0

ну, может, мой вопрос был неполным ... твоя команда работает для этого фиена. Однако, если у меня есть 'some-string-8 -x -command acommand', результатом выполнения этой команды является' some-string-0'. после этого он удалит все символы. Я хочу 'some-string-0 -x -command acommand' – mahmood

+0

ok первая команда - это то, что я хочу – mahmood

+0

что делать, если вы хотите использовать подстановочный знак в заменяющей строке? Пример: замените 'AAA. * BBB' на 'CCC. * DDD' – user2561747

5

Таким образом, концепции «подстановочный знак» в регулярных выражениях работает несколько иначе. Чтобы соответствовать «любому персонажу», вы должны использовать «.». Модификатор «*» означает любое количество раз.

Смежные вопросы