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

sh/bash/dash/ksh/zsh等Shell脚本
头像
shuizhongyu
帖子: 287
注册时间: 2012-11-06 12:43
系统: arch,ubuntu
来自: 安徽合肥
联系:

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

#1

帖子 shuizhongyu » 2013-05-15 10:41

RT
THS
Luckily,I have google.

新手,请大家不吝赐教,十分感谢
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#2

帖子 YeLee » 2013-05-15 10:50

代码: 全选

for szpath in $(echo $PATH |sed 's/:/\n/g')
do
    ls -1 $szpath |awk '{ if(length($1)==4) {  print $1 }}'
done
:em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
shuizhongyu
帖子: 287
注册时间: 2012-11-06 12:43
系统: arch,ubuntu
来自: 安徽合肥
联系:

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

#3

帖子 shuizhongyu » 2013-05-15 11:11

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
Luckily,I have google.

新手,请大家不吝赐教,十分感谢
头像
shuizhongyu
帖子: 287
注册时间: 2012-11-06 12:43
系统: arch,ubuntu
来自: 安徽合肥
联系:

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

#4

帖子 shuizhongyu » 2013-05-15 11:15

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
懂了~
有没有搜索命令的工具什么的?
有时候就是只能想起命令的一部分。。。然后没有网
Luckily,I have google.

新手,请大家不吝赐教,十分感谢
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#5

帖子 YeLee » 2013-05-15 11:57

记得之前Ubuntu弄了个command-not-found的东西吧,不过,至于是否所有发行版兼容我就不确定了。很多不知道的命令还是靠zsh来纠正拼写比较多,当然,鄙人还是更喜欢常用,用着用着就记住了。 :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
shuizhongyu
帖子: 287
注册时间: 2012-11-06 12:43
系统: arch,ubuntu
来自: 安徽合肥
联系:

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

#6

帖子 shuizhongyu » 2013-05-15 13:34

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

新手,请大家不吝赐教,十分感谢
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

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

#7

帖子 lilydjwg » 2013-05-19 16:31

[bash]for cmd in ${(k)commands}; do [[ $cmd = ???? ]] && echo $cmd; done
#或者
print -l ${(k)commands} | grep '^....$'
[/bash]
zsh only.
上次由 lilydjwg 在 2013-05-19 16:36,总共编辑 1 次。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

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

#8

帖子 lilydjwg » 2013-05-19 16:33

知道命令的一部分为 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]
头像
hawkIdeality
帖子: 411
注册时间: 2012-05-14 18:39

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

#9

帖子 hawkIdeality » 2013-05-19 17:06

学习 :em11
崩溃是不可抗拒滴
攒钱买(第?台)macbook,然后装ubuntu
那些说unity找不到应用程序的人拜托按一下win+A好吗?
Novelty, Novelty, Give Me Novelty
发表Linux、Win、OS X的对比帖时,建议您确认一下您真的用过Linux&&Win&&OS X,而不是用过Linux||Win||OS X。
吾乃古剑奇谭NC粉!
nash142857
帖子: 3
注册时间: 2013-02-14 23:04
系统: linux

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

#10

帖子 nash142857 » 2013-05-19 18:31

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
头像
只是说
帖子: 1140
注册时间: 2012-03-12 22:44
系统: 贱兔
来自: 株洲

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

#11

帖子 只是说 » 2013-05-19 20:35

学习了。
我的博客
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

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

#12

帖子 aerofox » 2013-05-24 18:16

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*}
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

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

#13

帖子 lilydjwg » 2013-05-26 15:10

aerofox 写了: 现学现卖,还来几条 zsh only的。

代码: 全选

set -o EXTENDED_GLOB

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

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

# 显示所有包含 term 的命令
echo ${(k@)commands//#%^*term*}
好厉害的数组操作喵~ :em11
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

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

#14

帖子 枫叶饭团 » 2013-05-26 15:13

喵,都好厉害,学习之 :em11
头像
shuizhongyu
帖子: 287
注册时间: 2012-11-06 12:43
系统: arch,ubuntu
来自: 安徽合肥
联系:

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

#15

帖子 shuizhongyu » 2013-05-29 22:36

这贴就这样技术了
:em05
Luckily,I have google.

新手,请大家不吝赐教,十分感谢
回复