【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 フィールド | 取り出すフィールドを指定する |