Echo命令行问题

时间:2012-09-14 18:28:38

标签: linux shell command-line echo

所以我是linux的新手,我正在尝试学习echo命令

我的第一个问题是我试图在扩展名.txt的某个目录中显示所有文件名(不是内容),而不是该目录

我试过这个 cd /directory/ | echo *.{txt}但它不起作用

同样如果我想显示所有文件名(不是内容),首先是说“,”后面跟着任何2个数字 我有 echo the[0-9][0-9]*但我不认为我的语法正确

最后,如果我想显示至少包含三个字符但不以“the”开头的文件怎么办? ......< - 我不知道怎么做这个

任何帮助和澄清都会使我受益,提前致谢!

5 个答案:

答案 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)

如果要显示文件内容,请使用catcat /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}}'