1

我在文本文件中有数据,例如 val1,val2 多行,我想将其更改为 1,val1,val2,0,0,1

我尝试在 awk(solaris) 中使用 print 语句来添加常量,但它不起作用。

正确的方法是什么?


(来自评论)这就是我尝试过的

awk -F, '{print "%s","1,"$1","$2"0,0,1"}' test.txt 
4

3 回答 3

3

根据您发布的命令,稍作改动即可:

$ awk -F, 'BEGIN{OFS=FS} {print 1,$1,$2,0,0,1}' file
1,val1,val2,0,0,1

或使用printf(我更喜欢print):

$ awk -F, '{printf "1,%s,%s,0,0,1", $1, $2}' file
1,val1,val2,0,0,1
于 2013-09-30T14:56:02.767 回答
2

要在每一行前面加上常量1并附加,0,0,1只需执行以下操作:

$ awk '{print 1,$0,0,0,1}' OFS=, file
1,val1,val2,0,0,1

一种惯用的方式是:

$ awk '$0="1,"$0",0,0,1"' file
1,val1,val2,0,0,1
于 2013-09-30T14:56:32.610 回答
1

使用sed

sed 's/.*/1,&,0,0,1/' inputfile

例子:

$ echo val1,val2 | sed 's/.*/1,&,0,0,1/'
1,val1,val2,0,0,1
于 2013-09-30T14:57:27.720 回答