このコマンドを使用してディレクトリ内の一部のファイルを一覧表示する必要があります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のおかげで、awk
5番目の列を除くすべての列を印刷するように指示するより効率的な方法があります。
はい
$ 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
詳細
この方法では、awk
5番目の列を空の文字列に設定して消去するように指示します""
。他のすべてはそのまま残ります。次に、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}'