উত্তর:
এটা চেষ্টা কর:
find . -type f | sed -rn 's|.*/[^/]+\.([^/.]+)$|\1|p' | sort -u
এটি এর জন্য কিছুই দেয় না:
এটিতে পাইপ দেওয়াও কার্যকর হতে পারে sort | uniq -c
।
-E
পরিবর্তে -r
উপর OS X এর
find . -type f | sed -E 's/.+[\./]([^/\.]+)/\1/' | sort -u
এক্সটেনশন ছাড়াই ফাইলগুলি বাদে ওএস এক্সে কাজ করে। আমার ডাউনলোড ফোল্ডার:
DS_Store
dmg
exe
localized
msi
nib
plist
pmproj
rar
tgz
txt
webloc
zip
sed -r
পরিবর্তে আপনার প্রয়োজন হতে পারে ?
গৌণ সমস্যা: এক্সটেনশন ছাড়াই ফাইলগুলি তাদের নাম মুদ্রণ করে। লুকানো ফাইল (যেমন .DS_Store
) নেতৃত্ব ছাড়াই তাদের নাম মুদ্রণ করে .
।
sort -u
পরিবর্তে সুপারিশ করব sort | uniq
। কম কাঁটাচামচ এবং সংস্থান ব্যবহার
[]
।
এম্বেড করা নিউলাইনসযুক্ত ফাইলের নাম দ্বারা বিভ্রান্ত না হওয়া এবং sort -uz
ফাইল এক্সটেনশানগুলিকে সঠিকভাবে এম্বেড করা নিউলাইনগুলিকে সঠিকভাবে সাজানোর জন্য এখানে আরও একটি সমাধান রয়েছে:
# [^.]: exclude dotfiles
find . -type f -name "[^.]*.*" -exec bash -c '
printf "%s\000" "${@##*.}" # get the extensions and nul-terminate each of them
' argv0 '{}' + |
sort -uz |
tr '\0' '\n' |
nl
sed: illegal option -- r