在bash中提取一个特定的单词

yuw*_*ang 2 linux bash awk cut sed

我在下面的表格中有一些行:

-rw-r--r-- sten/sefan anonymous 8593 2011-12-05 18:28 8M
-rw-r--r-- sten/sefan 8593 2011-12-05 18:28 8M
Run Code Online (Sandbox Code Playgroud)

我如何获得8593单行班轮?

通过执行一些dry-run归档来检索这些行,例如:

$ tar jtvf zip64support.tar.bz2 
-rw-r--r-- stefan.bodewig/Domain Users 16195018 2011-10-14 21:05 100k_Files.zip
-rw-r--r-- stefan.bodewig/Domain Users 14417258 2011-10-14 21:05 100k_Files_7ZIP.zip
Run Code Online (Sandbox Code Playgroud)

要么:

$ tar jtvf bla.tar.bz2 
-rw-r--r-- tcurdt/tcurdt   610 2007-11-14 18:19 test1.xml
-rw-r--r-- tcurdt/tcurdt    82 2007-11-14 18:19 test2.xml
Run Code Online (Sandbox Code Playgroud)

特别是YYYY-mm-dd在它之后获得一行中的数字.

Chr*_*our 7

您在当前目录中获取文件大小的命令是

$ stat -c %s *
Run Code Online (Sandbox Code Playgroud)

希望使用bash,awk或者cut这样做,你的问题是一个很大的原因是在第一线这将是第四列,并在第二个它的三分之一.不建议解析输出ls !


编辑:

由于列数gaurenteed我会使用grep积极前瞻:

$ tar jtvf zip64support.tar.bz2|grep -Po '[0-9]+(?= [0-9]{4}-[0-9]{2}-[0-9]{2})' 
16195018
14417258
Run Code Online (Sandbox Code Playgroud)