2

我有以下表格中的一些行:

-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

我怎样才能得到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

或者:

$ 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

专门获取在YYYY-mm-dd它之后的一行中的数字。

4

2 回答 2

7

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

$ stat -c %s *

不想使用bash,awkcut这样做,而您的问题是为什么在第一行中它是第四列而在第二行中它是第三列的一个重要原因。不推荐解析的输出!ls


编辑:

由于该列是数字,因此我将使用grep积极的前瞻

$ tar jtvf zip64support.tar.bz2|grep -Po '[0-9]+(?= [0-9]{4}-[0-9]{2}-[0-9]{2})' 
16195018
14417258
于 2013-05-23T11:30:06.647 回答
2

试试这个:

tar jtvf bla.tar.bz2|awk '$0=$3'

在你提到的问题中

获取后面带有 YYYY-mm-dd 的行中的数字。

如果你真的想用 grep:

tar ... |grep -oP '\d+(?= \d{4}-)'
于 2013-05-23T11:40:15.387 回答