替换文件中的文本并为新字符串添加编号

时间:2014-01-18 16:29:54

标签: perl sed awk

我想替换文件中每个字符串的出现,但是要以新文本的编号方式替换。例如:

从:

foo bar a
foo bar b
foo bar c

为:

bar baz1 a
bar baz2 b
bar baz3 c

如何在命令行中执行此操作?

3 个答案:

答案 0 :(得分:3)

awk的一种方式:

$ awk '{gsub(/foo bar/,"bar baz"++i)}1' file
bar baz1 a
bar baz2 b
bar baz3 c

答案 1 :(得分:2)

perl -lape '@F[0,1] = ($F[1], "baz". ++$i); $_= "@F"' file

答案 2 :(得分:0)

使用shell。

#! /usr/bin/bash

i=0
while read a b c
do
  ((i++))
  echo "bar baz$i $c"
done < file