所以我是linux的新手,我正在尝试学习echo命令
我的第一个问题是我试图在扩展名.txt的某个目录中显示所有文件名(不是内容),而不是该目录
我试过这个
cd /directory/ | echo *.{txt}
但它不起作用
同样如果我想显示所有文件名(不是内容),首先是说“,”后面跟着任何2个数字
我有
echo the[0-9][0-9]*
但我不认为我的语法正确
最后,如果我想显示至少包含三个字符但不以“the”开头的文件怎么办? ......< - 我不知道怎么做这个
任何帮助和澄清都会使我受益,提前致谢!
答案 0 :(得分:1)
通过使用适当的模式作为ls
命令的参数,可以实现您要做的事情:
ls /directory/*.txt
就echo
而言,它只是一个显示其参数的命令。
答案 1 :(得分:0)
我认为您需要list命令(ls
)或find
命令,例如
ls /some/path *.txt
find /some/path *.txt
ls
相对简单但有限。 find
稍微复杂一些,但具有更强大的功能和灵活性。
答案 2 :(得分:0)
cd /directory/ && echo *.txt
但这不是没有在那里。你可以
(cd /directory/ ; echo *.txt )
如果你想在执行命令后返回。
echo the{0..9}{0..9}*
ls| grep -v ^the
是的,如果你想要文件的内容,你应该使用cat
而不是echo
,在最后一种情况下
cat $(ls|grep -v ^the)
(注意,如果你的文件有空格,最后一个命令会变得更复杂)
答案 3 :(得分:0)
如果要显示文件内容,请使用cat
。 cat /directory/*.txt
和其他情况类似。
答案 4 :(得分:0)
问题1:
ls /some/dir/*.txt
问题2:
ls /some/dir/the[0-9][0-9]*.txt
问题3:
ls /some/dir/*.txt | awk '{if(length($1) > 3 && substr($1,0,3) != "the"){print $1}}'