Skip to Content
Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ
book

Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

by Ken Youens-Clark, 中山 光樹
January 2024
Intermediate to advanced
472 pages
5h 56m
Japanese
O'Reilly Japan, Inc.
Content preview from Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

8章cutコマンド

私は取り乱している / あなたに見捨てられたから /

でもチャッキーの腕に抱かれているから寂しくない

—— They Might Be Giants, "Cyclops Rock" (2001)

本章では、ファイルや標準入力を読み込んで、指定した部分だけを切り出すcutコマンドを作成します。切り出されるテキストは、ある範囲のバイトや文字になる場合もあれば、カンマやタブで区切られたフィールドになる場合もあります。「4章 headコマンド」では連続した文字やバイトの範囲を選択する方法を学びましたが、今回は選択範囲が非連続で任意の順序になりえます。たとえば、切り出す範囲として3,1,5-7を指定した場合、3番目の後に1番目、次いで5から7番目までのバイトや文字、フィールドを出力する必要があります。今回のプログラムでは元のプログラムを尊重しつつ、いくつか変更を加えて実装します。

本章では、以下の内容を学びます。

  • csvクレートを使って、区切り文字の含まれるテキストファイルを読み書きする方法
  • *を使った値の参照解決(dereference)†1
  • Iterator::flattenを使って、イテレータから入れ子構造を除去する方法
  • Iterator::mapとIterator::flattenを組み合わせたIterator::flat_mapの使い方

[†1] 訳注:「参照外し」と呼ぶ場合もあるが、本書では『プログラミングRust 第2版』に合わせて参照解決とした。

8.1 cutの動作

まずは、BSD版のcutコマンドのマニュアルページのうち、これから実装する機能に関連する部分を見てみましょう。

CUT(1) BSD General Commands Manual ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

プログラミングC# 第8版

プログラミングC# 第8版

Ian Griffiths, 木下 哲也, 鈴木 幸敏
進化的アーキテクチャ ―絶え間ない変化を支える

進化的アーキテクチャ ―絶え間ない変化を支える

Neal Ford, Rebecca Parsons, Patrick Kua, 島田 浩二

Publisher Resources

ISBN: 9784814400584Publisher Website