【Linux】ls -lコマンドの結果から特定の項目を抽出する


この記事はプロモーションを含みます。

Linux

Linux環境で、ls -lコマンドの実行結果から、指定した項目(カラム)を抽出する方法を解説します。

はじめに

下記のような、ls -lコマンドの実行結果から、所有者やグループ、ファイル名などの特定の項目を抽出する方法を説明します。

-rw-r--r--. 1 root    root     0  6月 21 18:19 data-20230101.tar.gz

上記の場合、所有者であれば「root」、ファイル名であれば「data-20230101.tar.gz」が取得されます。

特定の項目を抽出する

ここでは、以下のようなls -lの結果から各項目を抽出する方法を説明します。

[root@STKPUB002 data]# ls -l data-20230101.tar.gz
-rw-r--r--. 1 root root 5  6月 21 18:20 data-20230101.tar.gz

基本的な書式は以下となります。

ls -l ファイル名 | awk '{print $カラム番号}'

権限

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $1}'
-rw-r--r--.

ハードリンク数

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $2}'
1

所有者(オーナー)

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $3}'
root

グループ

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $4}'
root

ファイルサイズ

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $5}'
5

タイムスタンプ

下記のように、色々な形式で取得することが出来ます。

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $6" "$7}'
6月 21
[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $8}'
18:20
[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $6$7"日 "$8}'
6月21日 18:20

ファイル名

[root@STKPUB002 data]# ls -l data-20230101.tar.gz | awk '{print $9}'
data-20230101.tar.gz

コメント

タイトルとURLをコピーしました