如何显示本机上所有四个字母的命令
发表于 : 2013-05-15 10:41
RT
THS
THS
代码: 全选
for szpath in $(echo $PATH |sed 's/:/\n/g')
do
ls -1 $szpath |awk '{ if(length($1)==4) { print $1 }}'
done
THSYeLee 写了:代码: 全选
for szpath in $(echo $PATH |sed 's/:/\n/g') do ls -1 $szpath |awk '{ if(length($1)==4) { print $1 }}' done
![]()
![]()
懂了~shuizhongyu 写了:THSYeLee 写了:代码: 全选
for szpath in $(echo $PATH |sed 's/:/\n/g') do ls -1 $szpath |awk '{ if(length($1)==4) { print $1 }}' done
![]()
![]()
YeLee 写了:记得之前Ubuntu弄了个command-not-found的东西吧,不过,至于是否所有发行版兼容我就不确定了。很多不知道的命令还是靠zsh来纠正拼写比较多,当然,鄙人还是更喜欢常用,用着用着就记住了。![]()
![]()
YeLee 写了:代码: 全选
for szpath in $(echo $PATH |sed 's/:/\n/g') do ls -1 $szpath |awk '{ if(length($1)==4) { print $1 }}' done
![]()
![]()
学习了!lilydjwg 写了:[bash]for cmd in ${(k)commands}; do [[ $cmd = ???? ]] && echo $cmd; done
#或者
print -l ${(k)commands} | grep '^....$'
[/bash]
zsh only.
代码: 全选
set -o EXTENDED_GLOB
# 显示所有四个字母的命令
echo ${(k@)commands//#%^????}
# 显示所有四个字母,且包含字母 r 的命令
echo ${(@)${(k@)commands//#%^????}//^*r*}
# 显示所有包含 term 的命令
echo ${(k@)commands//#%^*term*}
好厉害的数组操作喵~aerofox 写了: 现学现卖,还来几条 zsh only的。
代码: 全选
set -o EXTENDED_GLOB # 显示所有四个字母的命令 echo ${(k@)commands//#%^????} # 显示所有四个字母,且包含字母 r 的命令 echo ${(@)${(k@)commands//#%^????}//^*r*} # 显示所有包含 term 的命令 echo ${(k@)commands//#%^*term*}