2013-09-30 4 views
0

У меня есть данные в текстовом файле, как знач1, val2 с несколькими линиями , и я хочу, чтобы изменить его на 1, VAL1, val2,0,0,1Awk добавляя постоянные значения

Я попытался с заявлением для печати в awk (solaris), чтобы добавить константы, не работало.

Каков правильный способ?


(Из комментариев) Это то, что я пытался

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

Можете ли вы показать, что вы пробовали? Может быть, вы были почти там. – fedorqui

+0

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

+0

@TejasJoshi Попробуйте удалить ''% s ",' – devnull

ответ

2

На основе команды, которую вы в курсе, небольшое изменение делает:

$ 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 
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 
1

Использование sed:

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

Пример:

$ echo val1,val2 | sed 's/.*/1,&,0,0,1/' 
1,val1,val2,0,0,1 
Смежные вопросы