我想找到并替换我找到的一些单词,但我想用固定字符串替换它,而不是用变量字符串替换它。
我输入的文件有一些创建表查询:
CREATE MULTISET TABLE DBNAME.TABLENAME
( .... ecc
)
我必须在每个之前添加一个像这样的组合字符串:
SELECT 1 FROM DBC.TABLESV WHERE DATABASENAME = '<DB_NAME>' AND TABLENAME = '<TABLE_NAME>' AND TABLEKIND='T';
.IF ACTIVITYCOUNT = 0 THEN .GOTO LABEL1
DROP TABLE <DB_NAME>.<TABLE_NAME>;
.LABEL LABEL1
每个LABEL 必须编号为出现次数。
所以从1到最后一个CREATE语句
答案 0 :(得分:2)
使用perl
perl -pe 's/FOO/$&.$x++/ge' file
每行可以使用多个FOO。
FOO FOO FOO
.....
....
...
FOO yadda FOO
....
.....
......
FOO sf
.... sdfsdf
FOO dsf dfsfs
s dfsdf FOO s fds d FOO
.....
=&GT;
FOO0 FOO1 FOO2
.....
....
...
FOO3 yadda FOO4
....
.....
......
FOO5 sf
.... sdfsdf
FOO6 dsf dfsfs
s dfsdf FOO7 s fds d FOO8
.....
答案 1 :(得分:1)
如果FOO
只在任何一行显示一次,您可以使用此awk脚本:
awk 'BEGIN { i=1; } { gsub(/FOO/, "FOO" i) && ++i; print }'
答案 2 :(得分:1)
使用awk
为我做了诀窍。
awk '/FOO/ { $0=$0 "" ++count }1' file
逻辑是搜索模式FOO
,并从打印的整个文件(由1
完成)中搜索,我们将找到的模式与count
匹配(此处{ {1}}是找到的模式的每个实例,附加了计数器)
$0