シンボリックリンクでいっぱいのフォルダ内で、最も長いフォルダ名を含むシンボリックリンクを見つける必要があります。これまで私はこれを持っています:
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
追跡します。リンクが見つからない場合は、読者が正しい出力を維持できるように、いくつかの注意とフィードバックを練習のままにしておきます。longest
maxlength