私はls -alth
からこのようないくつかの出力を持っている:regexをコマンドラインでカットするには?
drwxr-xr-x 5 root admin 170B Aug 3 2016 ..
drwxr-xr-x 5 root admin 70B Aug 3 2016 ..
drwxr-xr-x 5 root admin 3B Aug 3 2016 ..
drwxr-xr-x 5 root admin 9M Aug 3 2016 ..
は今、私は明らかに人間が読める形式のサイズです170B
一部を、アウト解析します。私はcut
またはsed
を使ってこれをやりたかったのです。なぜなら、必要以上に複雑で難しいツールを使いたくないからです。
B
、
M
または
K
サフィックスを処理するのに十分堅牢で、それに応じて
1
、
1000000
と
1000
により適宜掛けたいです。私はそれをする良い方法を見つけていない。
は、私は本当に最善のアプローチを知らなくても、いくつかのことを試してみた:私はちょうど1つ以上のスペース上でそれを区切ることができるだろうので、それが働くだろう期待していた
ls -alth | cut -f 5 -d \s+
。
しかし、それは動作しません。どのようにしてcut
に正規表現デリミタを指定しますか?または、ファイルのサイズのみをls -alth
から抽出する方が簡単ですか?
私はCentOS6.4
この答えはを尋ねて質問 に取り組ん
なぜだけではなく、 'lsの-althでデュの結果を解析することができます|カット-d」" -f5' ..? –
私は実際にそのオプションについて聞いたことがありません。これは、任意の数のスペースで分割する必要があるため機能しません。あなたの例は1つのスペースでのみ分割されます。私はもう少し明確にするために、いくつかの例を追加しました。 – guimption
OK then ... 'ls -alth | awk '(print $ 5)' 'はどうですか?これはデフォルトでは空白で動作します。ところで、私のDebianでカットされた作品でさえ。 –