0

以下のようなテキストファイルがあります。出力を印刷する代わりに、最初の列の数値を減算し、計算された値(絶対値)を含む新しい列を入力ファイルに追加したいと思います。awkまたはsedを使用して複数のファイルに対してこれを行うにはどうすればよいですか?

46-104   46   3.95073
46-46    46   1.45997
50-50    50   1.51589
52-100   52   4.16567

希望の出力

46-104   46   3.95073   58
46-46    46   1.45997   0
50-50    50   1.51589   0
52-100   52   4.16567   48
4

3 に答える 3

0

これはうまくいくかもしれません(GNU sedおよびbc):

sed -r 'h;s/(\S+).*/echo \1|bc/e;H;x;s/\n-?/ /' file
  • h行を保留スペース (HS) にコピーします。
  • s/(\S+).*/echo \1|bc/eパターン空間で計算を行う
  • HHS の元の行に改行と回答を追加する
  • xPSとHSを入れ替える
  • s/\n-?/ /改行と負の記号をスペースに置き換えます

awk を使用して同じ行に沿って:

 awk '{split($1,a,"-");b=a[1]-a[2];sub(/-/,"",b);print $0,b}' file
于 2013-01-26T08:37:48.140 に答える