- ベストアンサー
Linuxの結合に関するコマンド
Linuxのコマンドラインについて伺いたいことがあります。 やりたい操作は以下のような結合に関するコマンドです。 fileAには 1 apple 2 orange fileBには 3 apple 5 banana と書かれているとします。 重複している部分は結合し、かつその和を求めて以下のような fileC 4 apple 2 orange 5 banana を出力させるようなコマンドってなにかありますか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一応補足しておくと, #2 の方針も「全く不可能」というわけではありません. ただし「おかしな方向に努力と根性を働かせる人」向け. ふつ~の人は awk なり perl なりといったスクリプト言語でやるところでしょう.
その他の回答 (4)
- k_kota
- ベストアンサー率19% (434/2186)
和を取るのについては通常コマンドではできませんでした、見落としです。 となるとawkなのですが、No.1の方がawkと言って説明しないのは 「それは自分で考えろ」と言う意図と私は読み取りまして、 私もそれに同意しています。 上記の処理を行わないと行けない状況にある人であれば、この時点でそれくらいは勉強しておく必要があるのでは、と考えます。 一時ファイルが許されるなら2列目の項目を取り出したファイルを作ってそれら全ての行についてgrepとかという手もありますね。 規模感と状況に合わせて選択かと思います。
お礼
自分で調べるのも重要ですが、聞いてすぐ解決できる問題ならば聞いてしまった方が効率がいいのも事実です。 私は初心者なので、簡単にできる事柄の区別がまだ出来ていません。 だから質問しました。
- wormhole
- ベストアンサー率28% (1626/5665)
>上の例だとawkをどうやって使えばいいんですか? 第2フィールドの値をキーにして加算していけばいいです。 そして全部終わったところでまとめて出力。
- k_kota
- ベストアンサー率19% (434/2186)
catとsortかuniq、ここらへんはUNIXの文字列コマンドを一通り見れば分かるはず、メジャーなのはそんなにない。
お礼
そのあたり考えたんですけど、重複しているものの和をとるってなると、どれもうまくいかない感じがするんですよね。。
- localica
- ベストアンサー率52% (202/385)
awk
お礼
上の例だとawkをどうやって使えばいいんですか?
お礼
ありがとうございます。