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
。
答え1
これにより、目的のタスクが実行されます。
ls|sed 's/\..*//'|sort -u|column
シェルの端末幅が$ COLUMNSの場合は、次の方が良いです。
ls|sed 's/\..*//'|sort -u|column -c $COLUMNS
答え2
別の方法awk
:
ls | awk -F. '$1 != p { p=$1; print $1}'