アプリ版:「スタンプのみでお礼する」機能のリリースについて

Linuxのコマンドラインについて伺いたいことがあります。
やりたい操作は以下のような結合に関するコマンドです。


fileAには
1 apple
2 orange

fileBには
3 apple
5 banana

と書かれているとします。
重複している部分は結合し、かつその和を求めて以下のような

fileC
4 apple
2 orange
5 banana

を出力させるようなコマンドってなにかありますか?

よろしくお願いします。

A 回答 (5件)

一応補足しておくと, #2 の方針も「全く不可能」というわけではありません. ただし「おかしな方向に努力と根性を働かせる人」向け.



ふつ~の人は awk なり perl なりといったスクリプト言語でやるところでしょう.
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/02/12 10:15

和を取るのについては通常コマンドではできませんでした、見落としです。



となるとawkなのですが、No.1の方がawkと言って説明しないのは
「それは自分で考えろ」と言う意図と私は読み取りまして、
私もそれに同意しています。

上記の処理を行わないと行けない状況にある人であれば、この時点でそれくらいは勉強しておく必要があるのでは、と考えます。

一時ファイルが許されるなら2列目の項目を取り出したファイルを作ってそれら全ての行についてgrepとかという手もありますね。

規模感と状況に合わせて選択かと思います。
    • good
    • 0
この回答へのお礼

自分で調べるのも重要ですが、聞いてすぐ解決できる問題ならば聞いてしまった方が効率がいいのも事実です。
私は初心者なので、簡単にできる事柄の区別がまだ出来ていません。
だから質問しました。

お礼日時:2013/02/12 10:16

>上の例だとawkをどうやって使えばいいんですか?



第2フィールドの値をキーにして加算していけばいいです。
そして全部終わったところでまとめて出力。
    • good
    • 0

catとsortかuniq、ここらへんはUNIXの文字列コマンドを一通り見れば分かるはず、メジャーなのはそんなにない。

    • good
    • 0
この回答へのお礼

そのあたり考えたんですけど、重複しているものの和をとるってなると、どれもうまくいかない感じがするんですよね。。

お礼日時:2012/11/28 18:05

awk

    • good
    • 0
この回答へのお礼

上の例だとawkをどうやって使えばいいんですか?

お礼日時:2012/11/28 18:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!