HP-UX,UNIX環境です。
あるファイルを⇒a.txtとします。
a.txtには以下のような記述だとします。(行は複数行)
20110322000000 00:00:00 PERFORMANCE all
20110322000100 00:00:00 PERFORMANCE all
20110322000200 00:00:00 PERFORMANCE all
20110322000300 00:00:00 PERFORMANCE all
shでのループ処理は以下のようにしたいです。
(1)2行目の1カラム目から1行目の1カラム目を引き算、
(2)計算結果をファイルにリダイレクト
(3)4行目の1カラム目から3行目の1カラム目を引き算
(4)計算結果をファイルにリダイレクト
※awkを使えば出来そうですが、やり方がわかりません。
お手数ですが、ご回答宜しくお願い致します。
No.4
- 回答日時:
なんで「CGI」のところでシェルスクリプトやawkの質問をするのでしょうか。
{
num = $1;
if (getline > 0)
print $1 - num;, $0
}
余計な行はないと仮定しています。
回答ありがとうございます。
shとかのカテゴリがなかったので、ここにしてしまいましたが、
その他(プログラミング)とかありましたね。
No.3
- 回答日時:
> shでのループ処理は以下のようにしたいです。
2n行目から2n-1行目を減じるという処理でしょうか。
awk使わなくてもシェルスクリプトでもできる処理ではありますが。
$ DATA='20110322000000 00:00:00 PERFORMANCE all'
$ set -- $DATA
$ echo $1
20110322000000
既に指摘されている通り、20110322000000は整数を32ビットとして扱った時に扱える範囲を越えてますので(64ビットで扱うなら問題起こらない)分割して処理する等対処する必要があるかも知れません。
この回答への補足
saijyo_739さん
回答ありがとうございます。
確かに計算のビット数は意識してませんでした。
10桁どうしの引き算になりそうです。
echoで10桁どうしの簡単な引き算をしてみましたが、
ちゃんと表示できるみたいですね
No.1
- 回答日時:
awkなら、現在の行は組込み変数NRで参照できる。
奇数行目(NR % 2 == 1) : 1カラム目($1)を適当な変数に退避
奇数行目(NR % 2 == 0) : 1カラム目から、奇数行目で退避した値を引いて出力
よって
awk '{ if ( NR %2 == 1) { t = $1 } else { print $1 - t }' < 入力 > 出力
...なんですが、例にある14桁の数字だと、処理系によっては計算精度をオーバーして正常に計算できません。そのような場合は、筆算の要領で分割して計算するか、多倍長や無限桁整数に対応している言語(Ruby,Python等)で同様のプログラムを作るのがいいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
cgi アクセス制限 エラー
-
フォームを再送信しますか?
-
古ーくからフリーのtree.cgi掲...
-
-T(汚染モード)でメールが送れ...
-
docomoの構成プロファイルはど...
-
質問ページ(CGI)に行く時にフ...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
-
ホームページでCGIのフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
フォームを再送信しますか?
-
(フリーの)ツリー掲示版CGI、...
-
ホームページでCGIのフォームを...
-
/bin/awk '{print $5}'ってどう...
-
CGIって何ですか?簡潔に教えて...
-
cgiからsendmailを送信で文字化け
-
入力フォーム(電話番号)
-
CGI.pmはもう古い!?
-
フォームメールを受信すると文...
-
古ーくからフリーのtree.cgi掲...
-
チェックボックスでのvalue値の...
-
誕生日占いをプログラムで作成...
-
cgiファイルで構成された検索結...
-
VBAで条件から範囲を指定して色...
-
Perl 別ドメインのファイル存在...
-
.htaccessについて
-
number 改行が追加できない
-
JQUERYでウェブのフォームから...
おすすめ情報