最も長いファイル名を探す

最も長いファイル名を探す

シンボリックリンクでいっぱいのフォルダ内で、最も長いフォルダ名を含むシンボリックリンクを見つける必要があります。これまで私はこれを持っています:

find <folder> -type l -printf "%l\n"

次の疑似コードのように、検索中にフォルダ名を保存する方法があるかどうか疑問に思います。

if [length > max]
{
  max = length
  var = link
}

ありがとうございます:)

ベストアンサー1

find /path/to/base -type l | awk -F/ 'BEGIN {maxlength = 0; longest = "" } length( $NF ) > maxlength { maxlength = length( $NF ); longest = $NF } END { print "longest was", longest, "at", maxlength, "characters." }'

コンテンツをawk読みやすくするには:

BEGIN {
   maxlength = 0
   longest = ""
} 

length( $NF ) > maxlength { 
   maxlength = length( $NF )
   longest = $NF
} 
END { 
   print "longest was", longest, "at", maxlength, "characters." 
}

awk区切られたデータを処理するのに非常に熟練しています。パスはsで区切られているため、/フィールド区切り記号(スイッチを使用)として使用して、変数に表示される最も長い名前と変数の長さを-F追跡します。リンクが見つからない場合は、読者が正しい出力を維持できるように、いくつかの注意とフィードバックを練習のままにしておきます。longestmaxlength

おすすめ記事