Bash如何使用
如何使用ls
分組並僅顯示目錄名稱的第一個單詞?
我想定義一個新
ls
命令來做這樣的事情第一個當我使用普通
ls
命令時:$ls undergrade.AI undergrade.KDD undergrade.AI2 undergrade.micro undergrade.ANN undergrade.OOT undergrade.autoMata undergrade.OS undergrade.bulletin undergrade.parallelAndDistributedProgramming undergrade.CG undergrade.pop undergrade.CLP undergrade.PPL undergrade.comNet undergrade.researchingMethod undergrade.comOr undergrade.SA undergrade.comSec undergrade.SE undergrade.DBMS undergrade.softwareTesting undergrade.discrete undergrade.webApps code.ajax code.cc code.erl code.html code.js code.pl code.py code.sage code.x3d code.c code.cl code.go code.jquery code.lisp code.pro code.roo code.sh code.xml
對於我想要的新 ls:
$ls_new undergrade code
我希望它在我輸入時只顯示第一個單詞
ls_new
。為什麼我想要這個命令?
因為
category.subj
當我使用普通ls
的 . 然後我需要一些可以過濾、分組和顯示它們的命令,但只有category
名稱。
這應該做你想要的:
ls|sed 's/\..*//'|sort -u|column
如果你的 shell 在 $COLUMNS 中有你終端的寬度,那麼這樣會更好:
ls|sed 's/\..*//'|sort -u|column -c $COLUMNS
另一種方式
awk
:ls | awk -F. '$1 != p { p=$1; print $1}'