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

参见英文答案 > 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 '[^ ]+$'

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...