0

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

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

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

同样,如果我想显示以“the”开头的所有文件名(不是内容),然后是我拥有的任何 2 个数字, echo the[0-9][0-9]*但我认为我的语法不正确,该怎么办?

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

任何帮助和澄清都会使我受益,在此先感谢!

4

5 回答 5

1

您可以通过使用正确的模式作为ls命令的参数来实现您想要做的事情:

ls /directory/*.txt

echo目前而言,它是一个仅显示其参数的命令。

于 2012-09-14T18:32:41.250 回答
0

我认为您想要列表命令(ls)或find命令,例如

ls /some/path *.txt


find /some/path *.txt

ls比较简单但有限。 find稍微复杂一些,但具有更大的功能和灵活性。

于 2012-09-14T18:31:45.903 回答
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)

(注意,如果你的文件有空格,最后一个命令会变得更复杂)

于 2012-09-14T18:32:58.330 回答
0

如果你想显示文件的内容,你应该使用cat. cat /directory/*.txt其他情况也是如此。

于 2012-09-14T18:33:41.470 回答
0

问题一:

    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}}'
于 2012-09-14T18:46:55.520 回答