複数行の val1,val2 のようなテキスト ファイルにデータがあり、それを 1,val1,val2,0,0,1 に変更したい
awk(solaris) で print ステートメントを使用して定数を追加しようとしましたが、うまくいきませんでした。
それを行う正しい方法は何ですか?
(コメントより)これは私が試したことです
awk -F, '{print "%s","1,"$1","$2"0,0,1"}' test.txt
投稿したコマンドに基づいて、少し変更すると次のようになります。
$ 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
すべての行の先頭に定数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
使用sed
:
sed 's/.*/1,&,0,0,1/' inputfile
例:
$ echo val1,val2 | sed 's/.*/1,&,0,0,1/'
1,val1,val2,0,0,1