尝试创建满足三个条件的文件

尝试创建满足三个条件的文件

我需要创建一个文件,列出/sbin目录的前 5 行,并对这 5 行进行编号并且所有行都大写。

这是我尝试过的一串命令:

tr [a-z] [A-Z] < ls /sbin -n | head -5 > list.txt

然而,这给了我这个:

bash: ls: No such file or directory

任何帮助是极大的赞赏。

答案1

在 Bash shell 中你可以使用此命令:

ls /sbin | head -n 5 | nl | tr '[:lower:]' '[:upper:]' > list.txt

工作原理:

  • ls /sbin列出 的内容/sbin。请参阅man ls以获得更多选项。
  • 然后将输出通过管道传输到head -n 5,其中仅保留前 5 个结果。请参阅man head以获得更多选项。
  • 然后输出通过管道传输到nl,对输出行进行编号。参见man nl以获得更多选项。
  • 然后将输出通过管道传输到tr '[:lower:]' '[:upper:]',将所有小写字符转换为大写。参见man tr以获得更多选项。
  • 最后,> list.txt用于将输出重定向到文件名list.txt

最终输出应与此类似:

$ ls /sbin | head -n 5 | nl | tr '[:lower:]' '[:upper:]'
     1  AA-REMOVE-UNKNOWN
     2  AA-STATUS
     3  AA-TEARDOWN
     4  ACCESSDB
     5  ACPID

相关内容