lsコマンドを使用してファイルサイズを隠す方法

lsコマンドを使用してファイルサイズを隠す方法

このコマンドを使用してディレクトリ内の一部のファイルを一覧表示する必要がありますlsが、ファイルサイズも非表示にする必要があります。lsコマンドでどうすればいいですか?

答え1

以下を使用してブロックできますawk

$ ls -l | awk '{print $1, $2, $3, $4, $6, $7, $8, $9}'

はい

$ ls -l|awk '{print $1, $2, $3, $4, $6, $7, $8, $9}' | head -5
total 172136      
drwxrwxr-x 2 saml saml Jan 16 2013 desktop-integration
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-base-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-binfilter-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-calc-3.6.5.2-2.x86_64.rpm

詳細

このawkコマンドは自動的にデータを列に解析し、awkサイズ情報を含む列である5番目の列を除くすべての列を印刷するように指示します。

メモ:ただし、この方法はお勧めできません。他のツール(例:)にパイプする方法を示すために、この方法を紹介します。awk次の方法は、特定の例を解決するための好ましい方法です!

より簡潔なawkの例

コメントの@val0x00ffのおかげで、awk5番目の列を除くすべての列を印刷するように指示するより効率的な方法があります。

はい

$ ls -l|awk '{$5=""; print}' | head -5
total 172136   
drwxrwxr-x 2 saml saml  Jan 16 2013 desktop-integration
-rw-r--r-- 1 saml saml  Jan 16 2013 libobasis3.6-base-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml  Jan 16 2013 libobasis3.6-binfilter-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml  Jan 16 2013 libobasis3.6-calc-3.6.5.2-2.x86_64.rpm

詳細

この方法では、awk5番目の列を空の文字列に設定して消去するように指示します""。他のすべてはそのまま残ります。次に、awk残りの結果文字列を印刷するように指示します。

答え2

lsあなたの質問によると、あなたの通貨はそのオプションを含むエイリアスであると仮定します-l。したがって、1つの方法は、たとえば、次のように呼び出して上記のオプションをls使用しないことです。-l

echo "call $(which ls)"
$(which ls)

もう1つの可能性は、実際にはその-lオプションを使用したいのですが、ファイルサイズが変更されるたびに別の出力を望まない場合です。この場合、サイズが1TBを超えるファイルがない場合にのみ使用できます。すべてのファイルに対して1Tを報告して実際のファイルサイズを隠し、パイプや他のコマンドの使用を防ぐために、次のコマンドを使用します。

ls -l --block-size=T

もちろん、パイプの使用が気に入らずに使用したい場合は、awk@val0x00ffのおかげで@slmが投稿したソリューションを使用してください。

ls -l | awk '{$5=""; print}'

関連情報