cut

ファイルの各行から特定の場所だけ抜き出してを表示してくれます。 「ls -alt」だけを実行すると、

% ls -alt
合キ[ 44
drwx-----x   11 susaki   teacher       512  4月 16 16:51 .
drwx-----x    2 susaki   teacher      1024  4月 16 16:48 command
drwx--s--x   45 susaki   teacher      2560  4月 16 16:39 ..
drwx-----x    3 susaki   teacher      1024  4月 16 16:35 literacy
drwx-----x    3 susaki   teacher       512  4月 15 14:25 gis
drwx-----x    6 susaki   teacher      1024  3月  1 13:40 lab
drwx-----x    2 susaki   teacher      2048  1月 29 11:45 soft
drwx-----x    2 susaki   teacher       512  1月  7 09:38 perl
drwx-----x   10 susaki   teacher      1024  7月 31  2001 lecture
drwx-----x    2 susaki   teacher       512  6月 29  2001 image
drwxr-x---    2 susaki   teacher       512  6月 28  2001 applets

この結果のうち、作成日付とファイル(またはディレクトリ)名だけを取り出す となると、 | (パイプ)を 用いて「cut」を組み合わせると、

% ls -alt | cut -c44-70

 4月 16 17:23 ..
 4月 16 17:23 command
 4月 16 16:51 .
 4月 16 16:35 literacy
 4月 15 14:25 gis
 3月  1 13:40 lab
 1月 29 11:45 soft
 1月  7 09:38 perl
 7月 31  2001 lecture
 6月 29  2001 image
 6月 28  2001 applets

のように表示されます。「-c」オプションは位置を指定し、上記の例では「左か ら44番目から70番目の位置にある情報を表示せよ」という命令になります。実際 に70という数字は大きめに設定してあります。

今度は、作成日付とファイル(またはディレクトリ)名に加えて、パーミッショ ンも取り出して表示させたいとします。上記の例と同様に、 | (パイプ)を 用いて「cut」を組み合わせると、

% ls -alt | cut -c1-10,44-70
合キ[ 44
drwx-----x 4月 16 17:37 command
drwx--s--x 4月 16 17:23 ..
drwx-----x 4月 16 16:51 .
drwx-----x 4月 16 16:35 literacy
drwx-----x 4月 15 14:25 gis
drwx-----x 3月  1 13:40 lab
drwx-----x 1月 29 11:45 soft
drwx-----x 1月  7 09:38 perl
drwx-----x 7月 31  2001 lecture
drwx-----x 6月 29  2001 image
drwxr-x--- 6月 28  2001 applets

と実行すれば、目的通りに表示されます。上記の例と同様、「-c」オプションで 表示させる位置を指定しますが、「-c1-10,44-70」のように複数の位置を指定す ることができます。


上記の例では「-c」オプションで表示させる位置を指定しましたが、その他に 「-f」オプションで一続きの単語単位で分けて表示させる方法も、 よく使われます。「-f」オプションを使用する場合、区切りとなる文字を「-d」 オプションで指定する必要があります。

下記の例では、「book_list.csv」という本の情報が記述されているファ イルを用いて、任意の情報を抽出しようとしています。まず、ファイルの末尾か ら5行だけを抜き出して表示させると、

% tail -5 book_list.csv
545,わかりやすい中国の歴史 世界の教科書シリーズ2,人民教育出版社地理社会
室,明石
書店,2000,"1,701",中華人民共和国、多民族国家、古代文化、社会主義,
546,私たちの環境学,上智大学,駿河台出版社,2000,"1,795",環境問題、南北問題、
公害、
環境経済学、企業、NGO、自然、アメリカ、里山,
547,私たちの田園,岩隈 利輝、千賀 裕太郎、勝野 武彦,集文社,1994,"4,403",
田園計画
、住民参加、集落、緑地、文化財、建物、棚、垣,
548,私のエネルギー論,崎川 範行,海文堂出版,1976,652,自然、エネルギー、原
子力発電
、循環系、太陽、地球、水素、ゴミ,
549,雲南の生活と技術,C・ダニエルス、渡部 武,慶友社,1994,"9,261",少数民族、
西双版
納、雲南、民具、狩猟、焼畑,

上記のようになりました。1番目の項目は本の番号、2番目がタイトル、3番目が 著者、4番目が出版者など情報が記述されています。

では、2番目と3番目の項目だけを抜き出して表示させます。項目の間は , で区切られていますから、下記のように指定します。

% tail -5 book_list.csv | cut -f2-3 -d','
わかりやすい中国の歴史 世界の教科書シリーズ2,人民教育出版社地理社会室
私たちの環境学,上智大学
私たちの田園,岩隈 利輝、千賀 裕太郎、勝野 武彦
私のエネルギー論,崎川 範行
雲南の生活と技術,C・ダニエルス、渡部 武

一方、2番目と4番目の項目だけを抜き出して表示させるには、

% tail -5 book_list.csv | cut -f2,4 -d','
わかりやすい中国の歴史 世界の教科書シリーズ2,明石書店
私たちの環境学,駿河台出版社
私たちの田園,集文社
私のエネルギー論,海文堂出版
雲南の生活と技術,慶友社

と実行すれば、目的通り表示されます。


[UNIXコマンドのページ] [須崎純一のトップページ]
須崎純一 京都大学大学 工学研究科都市環境工学専攻 環境情報学講座