2012-03-26 15 views

答えて

8

あなたはこの

for i in `ls`; do LEN=`expr length $i`; echo $LEN $i; done | sort -n 
+0

私はそれがファイルサイズに基づいてソートされると思いますが、私はそれがファイル名そのことについて申し訳ありません –

+0

の長さに基づいてソートすることにしたいです。 – Raghuram

+0

新しいコードが追加されました...今すぐチェック – Raghuram

2

メイクテストファイルと同様に行うことができ、事前に ありがとう:

mkdir -p test; cd test 
touch short-file-name medium-file-name loooong-file-name 

スクリプト:

ls |awk '{print length($0)"\t"$0}' |sort -n |cut --complement -f1 

出力:

short-file-name 
medium-file-name 
loooong-file-name 
+0

最初の2つのソリューションは正常に動作します。すべての返信に感謝します。 –

4

最も簡単な方法はただである:

$ ls | perl -e 'print sort { length($b) <=> length($a) } <>' 
+0

上記のラグラムの答えは、bashシェルのFreeBSDで私にとってうまくいきませんでしたが、これがしました。ペトルが大好き。ありがとう。 –

0
for i in *; do printf "%d\t%s\n" "${#i}" "$i"; done | sort -n | cut -f2- 
関連する問題