我想替换文件中每个字符串的出现,但是要以新文本的编号方式替换。例如:
从:
foo bar a
foo bar b
foo bar c
为:
bar baz1 a
bar baz2 b
bar baz3 c
如何在命令行中执行此操作?
答案 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