linux - 在 linux 终端上选择特定列

标签 linux bash ubuntu

我用了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 .
关于您关于选择如何工作的问题,它根据您指定的分隔符将它们分成单独的列。致cutawk ,它只是一个可以处理的文本 block ,没有什么像“ls 的输出”那样特别。

关于linux - 在 linux 终端上选择特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65524165/

相关文章:

php - 如何在 127.0.0.1 :9000 上重新启动已编译的 php-fpm

git - 是否可以接受用户输入作为远程 git post-receive Hook 的一部分?

linux - 您如何将 cron 输出发送到 null 并将错误发送到电子邮件?

linux - 对命令行中的列表感到困惑

node.js - vue build 崩溃 ubuntu 18.04

c - 复制文件时删除了笔式驱动器

c - 如何在 Linux 2.6.29 中解码 ioctl() 系统调用中的 arg 指针?

linux - 安装设备不允许二进制文件

linux - Linux (Ubuntu 12.04) 中的 sys/stat.h 在哪里?

linux - 在USB硬盘上设置minecraft服务器服务问题