「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

cut【コマンド】

pointこの用語のポイント

pointコマンドだよ

pointUNIX系で使えるよ

pointテキストファイルの各行から文字列を抜き出すよ

point抜き出す文字列は範囲指定するよ

スポンサーリンク

簡単に書くよ

cut【コマンド】とは

コンピュータさんに対する命令文(コマンド)のひとつ
であり

テキストファイルの各行から指定範囲内の文字列を抜き出して表示するときに使うコマンド
です。


image piyo

詳しく書くよ

「cut」コマンド

テキストファイルの各行から指定範囲内の文字列を抜き出すときに使うコマンド

です。
UNIXLinuxとかMacとか)で使えます。

書き方は

cut [オプション] [対象のファイル名]

です。
オプションは、あれやこれやとあります。

オプション説明
-b 【範囲指定】バイト単位で抜き出す範囲を指定
--bytes=【範囲指定】
-c 【範囲指定】文字単位で抜き出す範囲を指定
--characters=【範囲指定】
-d 【区切り文字】区切り文字としてタブ以外を使う。「-f」オプションと併用
--delimiter=【区切り文字】
-f 【範囲指定】フィールド単位で抜き出す範囲を指定
--fields=【範囲指定】
-n日本語とかの2バイト文字を途中でぶったぎらない。「-b」オプションと併用
--complementcomplement the set of selected bytes, characters or fields.
-s区切り文字を含まない行は表示しない。「-f」オプションと併用
--only-delimited
--output-delimiter=STRINGuse STRING as the output delimiter the default is to use the input delimiter
--helpヘルプを表示する
--versionライセンスとかバージョンとかを表示する

などです。

範囲指定の仕方は以下の通りです。
例として、数字は「5バイト目(5文字目、5番目のフィールド)」と「10バイト目(10文字目、10番目のフィールド)」を使っています。

指定意味
55バイト目(5文字目、5番目のフィールド)
5-5バイト目(5文字目、5番目のフィールド)から最後まで
5-105バイト目(5文字目、5番目のフィールド)から10バイト目(10文字目、10番目のフィールド)まで
-10最初から10バイト目(10文字目、10番目のフィールド)まで

ここまでを踏まえて、実際の使い方を見てみましょう。
例えば以下のファイルがあったとします。

■file1.txt
abcde【タブ】fghij【タブ】klmno
pqrst【タブ】uvwxy【タブ】z


この状態で

cut -b 3 file1.txt

を実行すると、結果は

c
r


に なります。
1行目の先頭から3バイト目の文字「c」と2行目の先頭から3バイト目の文字「r」が表示されています。

cut -b 3- file1.txt

を実行すると、結果は

cde【タブ】fghij【タブ】klmno
rst【タブ】uvwxy【タブ】z


に なります。
それぞれの行において、先頭3バイト目から最後まで抜き出されています。

cut -b 3-5 file1.txt

を実行すると、結果は

cde
rst


に なります。
それぞれの行において、先頭3バイト目から5バイト目まで抜き出されています。

cut -b -5 file1.txt

を実行すると、結果は

abcde
pqrst


に なります。
それぞれの行において、先頭3バイト目から5バイト目まで抜き出されています。

これが基本的な使い方です。

上の例ではバイト数単位で指定しましたが「-c」を指定すれば文字数単位で抜き出せます。

cut -c 2 file1.txt

を実行すれば

b
q


に なります。
ありゃ、アルファベットなのでバイト単位で抜き出したときと同じ結果ですね。
「-c」オプションは日本語とかを扱うときに意味を持ってきます。

「-f」を指定すれば区切り文字を基準としたフィールド単位で抜き出せます。

cut -f 2 file1.txt

を実行すれば

fghij
uvwxy


に なります。
タブを区切り文字として、各行の2番目のフィールドが表示されています。

あと取り上げておくべきは「-n」オプションでしょうか。

例えば以下のファイルがあったとします。

■file2.txt
あいうえお

この状態で

cut -b -5 file2.txt

を実行すると、私の環境では

あ・

と表示されます。
これは日本語が3バイトで数えられているので、2文字目の「い」の途中でぶった切られているのが原因です。
このようなマルチバイト文字が途中でぶった切られないようにするためのオプションが「-n」です。
「-n」オプションを指定して

cut -b -5 -n file2.txt

を実行すると、私の環境では



に なります。
「い」が途中でぶった切られないように、キリの良いところでぶった切ってくれたのでしょうね。
日本語を含むファイルからバイト単位で抜き出すときは意識してあげてください。

cutコマンドの使い方は、そんなところでしょうか。


image piyo2

一言でまとめるよ

まぁ「cut」ってコマンドが出てきたら「テキストファイルの各行から指定範囲内を抜き出すときに使うんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像069
書籍画像042

おまけ

■訳してみるよ

「cut(カット)」の意味は「切る」とか「切り取る」とか「削減する」とかです。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性
あたえる人があたえられる