分页: 1 / 2

如何显示本机上所有四个字母的命令

发表于 : 2013-05-15 10:41
shuizhongyu
RT
THS

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-15 10:50
YeLee

代码: 全选

for szpath in $(echo $PATH |sed 's/:/\n/g')
do
    ls -1 $szpath |awk '{ if(length($1)==4) {  print $1 }}'
done
:em01 :em01 :em01

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-15 11:11
shuizhongyu
YeLee 写了:

代码: 全选

for szpath in $(echo $PATH |sed 's/:/\n/g')
do
    ls -1 $szpath |awk '{ if(length($1)==4) {  print $1 }}'
done
:em01 :em01 :em01
THS
:em11

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-15 11:15
shuizhongyu
shuizhongyu 写了:
YeLee 写了:

代码: 全选

for szpath in $(echo $PATH |sed 's/:/\n/g')
do
    ls -1 $szpath |awk '{ if(length($1)==4) {  print $1 }}'
done
:em01 :em01 :em01
THS
:em11
懂了~
有没有搜索命令的工具什么的?
有时候就是只能想起命令的一部分。。。然后没有网

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-15 11:57
YeLee
记得之前Ubuntu弄了个command-not-found的东西吧,不过,至于是否所有发行版兼容我就不确定了。很多不知道的命令还是靠zsh来纠正拼写比较多,当然,鄙人还是更喜欢常用,用着用着就记住了。 :em01 :em01 :em01

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-15 13:34
shuizhongyu
YeLee 写了:记得之前Ubuntu弄了个command-not-found的东西吧,不过,至于是否所有发行版兼容我就不确定了。很多不知道的命令还是靠zsh来纠正拼写比较多,当然,鄙人还是更喜欢常用,用着用着就记住了。 :em01 :em01 :em01
:em11

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-19 16:31
lilydjwg
[bash]for cmd in ${(k)commands}; do [[ $cmd = ???? ]] && echo $cmd; done
#或者
print -l ${(k)commands} | grep '^....$'
[/bash]
zsh only.

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-19 16:33
lilydjwg
知道命令的一部分为 abc,找出所有这样的命令:
[bash]
for cmd in ${(k)commands}; do [[ $cmd = *abc* ]] && echo $cmd; done
# 或者
print -l ${(k)commands} | grep abc
# 所有 ls 开头的命令
print -l ${(k)commands} | grep '^ls'
[/bash]

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-19 17:06
hawkIdeality
学习 :em11

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-19 18:31
nash142857
YeLee 写了:

代码: 全选

for szpath in $(echo $PATH |sed 's/:/\n/g')
do
    ls -1 $szpath |awk '{ if(length($1)==4) {  print $1 }}'
done
:em01 :em01 :em01
:em11 :em11

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-19 20:35
只是说
学习了。

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-24 18:16
aerofox
lilydjwg 写了:[bash]for cmd in ${(k)commands}; do [[ $cmd = ???? ]] && echo $cmd; done
#或者
print -l ${(k)commands} | grep '^....$'
[/bash]
zsh only.
学习了!
现学现卖,还来几条 zsh only的。

代码: 全选

set -o EXTENDED_GLOB

# 显示所有四个字母的命令
echo ${(k@)commands//#%^????}

# 显示所有四个字母,且包含字母 r 的命令
echo ${(@)${(k@)commands//#%^????}//^*r*}

# 显示所有包含 term 的命令
echo ${(k@)commands//#%^*term*}

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-26 15:10
lilydjwg
aerofox 写了: 现学现卖,还来几条 zsh only的。

代码: 全选

set -o EXTENDED_GLOB

# 显示所有四个字母的命令
echo ${(k@)commands//#%^????}

# 显示所有四个字母,且包含字母 r 的命令
echo ${(@)${(k@)commands//#%^????}//^*r*}

# 显示所有包含 term 的命令
echo ${(k@)commands//#%^*term*}
好厉害的数组操作喵~ :em11

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-26 15:13
枫叶饭团
喵,都好厉害,学习之 :em11

Re: 如何显示本机上所有四个字母的命令

发表于 : 2013-05-29 22:36
shuizhongyu
这贴就这样技术了
:em05