加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何使用regexp分隔符获取第n列

发布时间:2020-12-16 01:16:49 所属栏目:安全 来源:网络整理
导读:参见英文答案 linux shell file size6个 基本上我从ls -la命令得到一行: -rw-r--r-- 13 ondrejodchazel staff 442 Dec 10 16:23 some_file 并希望获得文件大小(442).我尝试过cut和sed命令,但是没有用.使用基本的UNIX工具(cut,sed,awk …),如何从stdin获取特
参见英文答案 > linux shell file size6个
基本上我从ls -la命令得到一行:
-rw-r--r--  13 ondrejodchazel  staff  442 Dec 10 16:23 some_file

并希望获得文件大小(442).我尝试过cut和sed命令,但是没有用.使用基本的UNIX工具(cut,sed,awk …),如何从stdin获取特定列,其中分隔符是/ / regexp?

如果你想用切割来做,你需要先挤压空间(tr -s”),因为切割不支持.这应该工作:
ls -la | tr -s ' ' | cut -d' ' -f 5

使用sed(GNU sed)执行此操作时需要更多工作:

ls -la | sed -r 's/([^ ]+ +){4}([^ ]+).*/2/'

如果你使用grep替代(GNU grep),稍微多一点手指打孔:

ls -la | grep -Eo '[^ ]+( +[^ ]+){4}' | grep -Eo '[^ ]+$'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读