1

私のデータは次のようになります。

0.000000 0.071429 0.071429 0.857143 
0.071429 0.428571 0.071429 0.428571 
0.357143 0.214286 0.357143 0.071429 
0.000000 0.714286 0.000000 0.285714 
0.000000 0.571429 0.000000 0.428571 
0.428571 0.357143 0.071429 0.142857 
0.000000 0.071429 0.071429 0.857143 
0.071429 0.000000 0.928571 0.000000 
0.000000 0.071429 0.000000 0.928571 
0.000000 0.285714 0.000000 0.714286 
0.142857 0.000000 0.785714 0.071429 

私はそれをそのように見せたい:

AC name_of_the_file.txt
00 0.000000 0.071429 0.071429 0.857143 
01 0.071429 0.428571 0.071429 0.428571 
02 0.357143 0.214286 0.357143 0.071429 
03 0.000000 0.714286 0.000000 0.285714 
04 0.000000 0.571429 0.000000 0.428571 
05 0.428571 0.357143 0.071429 0.142857 
06 0.000000 0.071429 0.071429 0.857143 
07 0.071429 0.000000 0.928571 0.000000 
08 0.000000 0.071429 0.000000 0.928571 
09 0.000000 0.285714 0.000000 0.714286 
10 0.142857 0.000000 0.785714 0.071429  
XX
//

範囲(00からファイルが終了するまで)に対して$ 1をawkするにはどうすればよいですか?

4

2 に答える 2

2

一方通行:

awk 'FNR == 1 { print FILENAME } { printf "%02d %s\n", FNR - 1, $0 }' infile

出力:

infile
00 00 0.000000 0.071429 0.071429 0.857143 
01 01 0.071429 0.428571 0.071429 0.428571 
02 02 0.357143 0.214286 0.357143 0.071429 
03 03 0.000000 0.714286 0.000000 0.285714 
04 04 0.000000 0.571429 0.000000 0.428571 
05 05 0.428571 0.357143 0.071429 0.142857 
06 06 0.000000 0.071429 0.071429 0.857143 
07 07 0.071429 0.000000 0.928571 0.000000 
08 08 0.000000 0.071429 0.000000 0.928571 
09 09 0.000000 0.285714 0.000000 0.714286 
10 10 0.142857 0.000000 0.785714 0.071429
于 2012-04-24T21:03:15.723 に答える
2

本当の質問が何なのかわかりません。表面的には、これでうまくいくはずです。

awk '{ if (line++ == 0) { print "AC " FILENAME; } printf("%.2d %s\n", NR-1, $0); }
     END { print "XX\n//" }'
于 2012-04-24T21:03:33.740 に答える