打印带前缀的记录号

时间:2013-06-29 20:55:36

标签: bash shell awk ksh

我有一个shell脚本,可以创建如下所示的CSV输出文件(在不同的行上):

aaa,111
bbb,222
ccc,999

我希望将记录号作为上述输出中的第一列,例如

dm1,aaa,111
dm2,bbb,222
dm3,ccc,999

如何在我的shell脚本中为dm创建变量?

3 个答案:

答案 0 :(得分:1)

使用awk

awk '{print "dm" NR "," $0}' input.csv >output.csv

... | awk '{print "dm" NR "," $0}' >output.csv

答案 1 :(得分:0)

你可以使用var和expr做一些像

这样的数学运算
dm=`expr $dm + 1`
echo "dm$dm,...rest of output..."

答案 2 :(得分:0)

将输出传输到awk

yourcommand | awk -F, -v prefix="dm" '{printf "%s%d,%s\n", prefix, NR, $0}'

我们设置-F,来设置输入字段分隔符,并设置-v来设置前缀。如果需要,可以用shell变量替换“dm”。