I need to add blank spaces to a file
やりたいことが良く分からないが、スペースを付与したいそうな。
$ awk 'BEGIN{ printf "%11sE" , "" }'
とか
$ echo E | sed ':a;s/^.\{0,11\}$/ &/;ta'
というものが相当するんだが、どうもファイルを置き換えたいらしい。(最初からそう書けよ)
紛争から抜け出した Ed 氏が回答し、
awk 'BEGIN{ printf "%33sE" , "" }' testfile > tmp && mv tmp testfile
多分、私もこうすると思う。で、Ed 氏が、
awk ' function printout(_str) { _out[++_nr] = _str } function flushout( _i) { close(FILENAME); for (_i=1; _i<=_nr;_i++) print _out[_i] > FILENAME } { printout( NR " " $0 ) } END { flushout() }'
というのを書いているが、どうなんでしょう。普通、やらないよなぁ。
結局、「awk の printf の挙動を理解するように」となっている。