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
リンク
コメント