我需要创建一个文件,列出/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