найти и заменить из командной строки unix - PullRequest
5 голосов
/ 23 февраля 2010

У меня есть многострочный текстовый файл, где каждая строка имеет формат

..... Game #29832: ......

Я хочу добавить символ «1» к каждому номеру в каждой строке (который отличается в каждой строке), кто-нибудь знает способ сделать это из командной строки?

Спасибо

Ответы [ 4 ]

6 голосов
/ 23 февраля 2010
sed -i -e 's/Game #[0-9]*/&1/' file

-i предназначен для редактирования на месте, а & означает все, что соответствует шаблону. Если вы не хотите перезаписывать файл, пропустите флаг -i.

4 голосов
/ 23 февраля 2010

Использование sed:

cat file | sed -e 's/\(Game #[0-9]*\)/\11/'
1 голос
/ 23 февраля 2010
sed 's/ Game #\([0-9]*\):/ Game #1\1:/' yourfile.txt
0 голосов
/ 24 февраля 2010

GNU awk

awk '{b=gensub(/(Game #[0-9]+)/ ,"\\11","g",$0); print b }' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...