У меня есть файл test.txt содержит много строк, например:
hello:123: world hello:783: world hello:479: world ......
Как использовать команду sed
для замены строк следующим образом?
hello:(123, 0): world hello:(783, 0): world hello:(479, 0): world ......
Заранее спасибо!
Как вам это нравится? Надеюсь, это то, что вам нужно.
sed -e 's/\([0-9]\+\)/(\1, 0)/g'
Контрольная работа
echo "hello:123: world hello:783: world hello:479: world" | sed -e 's/\([0-9]\+\)/(\1, 0)/g'
результат
hello: (123, 0): world
hello: (783, 0): world
hello: (479, 0): world
Предполагая, что вход имеет :
выделенный текст и второй столбец необходимо изменить:
$ awk 'BEGIN{ FS=OFS=":" } {$2 = "("$2", 0)"} 1' ip.txt hello:(123, 0): world hello:(783, 0): world hello:(479, 0): world
Или, с perl
$ perl -F: -le '$F[1] = "($F[1], 0)"; print join(":",@F)' ip.txt hello:(123, 0): world hello:(783, 0): world hello:(479, 0): world