【Linux】
ファイルの各行から指定した位置の文字を取得する方法

cutコマンドの使い方

投稿日 2022/06/11 更新日 2022/06/11


こんにちは。当サイトの管理者「元木皇天」です。

今回はLinuxのコマンドを使用して、ファイルの各行から指定した位置の文字を取得する方法につい解説いたします。

環境
OS:Kali Linux Ver5.15

指定した位置から任意の文字を取得する方法

ファイルの各行の指定した位置から任意の文字を取得するにはcutコマンドを使用します。

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

例えば、ファイルの各行の5文字目のみ取り出したい場合は「-c」オプションを使用し、以下のように記述します (以下の例では「/etc/passwd」ファイルを参照しています)。

cut -c 5 /etc/passwd

また、任意の文字位置ではなくX文字目〜Y文字目を取得したい場合は以下のように記述します(以下の例では「1〜10文字目」を取得しています)。

cut -c 1-10 /etc/passwd

指定した区切り文字で行を分割して文字を取得する方法

次は指定した区切り文字で行を分割して文字を取得する方法について解説いたします。

csvファイルなど、特定の区切り文字で区切られたファイルの中身から、特定の位置のブロックを取得したいことがあると思います。

そのような場合は「-d」オプションと 「-f」オプションを使用します。

以下はpasswdファイルから1つ目のブロックを取得する例です。

passwdファイルの各行は「:」で区切られているので、区切り文字には「:」を指定します。

cut -d: -f 1 passwd

まとめ

cutコマンドでは以下のようなオプションが使用できます。

オプション説明
-c 文字数取り出す位置を指定する
-d 区切り文字区切り文字を指定する(デフォルトはタブ)
-f フィールド取り出すフィールドを指定する