我用了ls-alhF /
命令作为 cut
的输入命令。 ls-alhF /
的一部分下面给出的输出。我想选择特定列,如第二列或最后一列(显示文件和目录名称以及链接文件的列)。我用了cut -d " " -f 2
为了它。
令我惊讶的是,它不起作用,因为它以单个空格作为分隔符。因此,我无法执行最后一列选择,其中
drwxr-xr-x 127 root root 12K Dec 24 16:28 etc/
drwxr-xr-x 3 root root 4.0K Nov 9 18:56 home/
lrwxrwxrwx 1 root root 7 Nov 9 18:50 lib -> usr/lib/
对我来说是单个信息列。第二行,lib -> usr/lib/
,剪切命令将其视为 3 个字段(“lib
”、“->
”、“usr/lib
”)。我也尝试使用 tr
, column
, sed
, grep
;但我没有得到任何想要的结果。请帮帮我。
最佳答案
ls
通常不是解析的好竞争者。阅读 excellent question @Cyrus 指出。
要获取有关文件及其符号链接(symbolic link)的信息,GNU stat
应该管用。
stat -f "%N%SY" ./*
# Sample output :
# ./test.py
# ./test.sh -> test.bash
这给了我当前目录中的文件以及具有符号链接(symbolic link)的文件(如果有)。提供多种其他出色的解决方案here .关于您关于选择如何工作的问题,它根据您指定的分隔符将它们分成单独的列。致
cut
或 awk
,它只是一个可以处理的文本 block ,没有什么像“ls 的输出”那样特别。
关于linux - 在 linux 终端上选择特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65524165/