1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linux cutコマンドのメモ

Last updated at Posted at 2021-02-23

Linuxのcutコマンドの簡単な解説

つぎのsampleというテキストファイルを題材にして cut コマンドを説明していきます。

sample
foo,bar,baz
120,678,231
Ubuntu,Debian,CentOS

-c オプション

何文字目なのかをベースにしてテキストを切り出すには-cオプションを使います。以下はテキストの各行から最初の3文字を取り出す例です。-c1-3は1文字目から3文字目という意味です。

$ cut -c1-3 sample
foo
120
Ubu

このように cut コマンドはデフォルトでは画面(標準出力)に結果を表示します。結果をファイルに格納したかったら > の記号を使ってリダイレクトしないといけません。

$ cut -c1-3 sample > first_3               
$ cat first_3	
foo
120
Ubu

次は、5〜7文字目と9〜11文字目を切り出す例です。

$ cut -c5-7,9-11 sample
barbaz
678231
tu,ebi

-d 及び -f オプション

タブやカンマで区切られたフィールドごとに切り出すにはこれらのオプションを用います。上の sampleファイルはカンマで区切られていますが、カンマで区切られた2列目を表示したい場合は次のようにします。

$ cut -d, -f2 sample
bar
678
Debian

この-d-delimiterの略です。-dの直後に,がありますから-d,で区切り記号がカンマであると指定しているのです。-dオプションを省略するとデフォルトのタブ記号をdelimiterに指定したことになります。

以下は、カンマで区切られた1番目と3番目のフィールドを抽出した例です。

$ cut -d, -f1,3 sample
foo,baz
120,231
Ubuntu,CentOS

--output-delimiter オプション

上の出力例のように、デフォルトでは -dオプションに指定したカンマを利用してフィールドは区切られます。この区切り記号を変更したい場合には--output-delimiterオプションを使います。以下は空白で区切った例です。

$ cut -d, --output-delimiter=" " -f1,3 sample
foo baz
120 231
Ubuntu CentOS

タブで区切りたい場合は技巧的ですが以下のようにするとよいでしょう。

$ cut -d, --output-delimiter="$(printf \\t)" -f1,3 sample
foo     baz
120     231
Ubuntu	CentOS

bash, ksh, zshでは次でもOKです(shでは機能しません)。

$ cut -d, --output-delimiter=$'\t' -f1,3 sample
foo     baz
120     231
Ubuntu	CentOS

上の例はシェルスクリプトの一行目で #!/bin/sh のように sh を指定してしまうと
$'文字列'
が機能せず、ねらい通りに動かないので注意してください。

他のコマンドとの連携

cutコマンドは標準入力からの入力を受け付けているので、パイプ | の右側に持ってくることができます。つぎは、grepコマンドで処理した結果を、cutコマンドで処理する例です。

$ grep [a-zA-Z] sample | cut -d, -f3
baz
CentOS

sample というファイルの中でアルファベットを含む行を grep で抽出すると

$ grep [a-zA-Z] sample
foo,bar,baz
Ubuntu,Debian,CentOS

となるはずです。この2行のデータの中で、カンマで区切られた3行目を抽出すると上のように bazCentOS が出てくるのわけです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?