免责声明:我是awk的新手。
问题:如何对find命令的输出进行排序并添加md5sum - 全部使用awk?
我的尝试:
find $1 -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | awk 'BEGIN { ORS=" "} {print $1,$2,$3,$4} {system("md5sum $4")} '
问题:同样的md5sum!
2015-12-21 12:41:54.000000000 -0600 ./gsk8capicmd_64 d41d8cd98f00b204e9800998ecf8427e -
2015-12-21 12:41:53.000000000 -0600 ./gsk8ver d41d8cd98f00b204e9800998ecf8427e -
2015-12-21 12:41:52.000000000 -0600 ./gsk8ver_64 d41d8cd98f00b204e9800998ecf8427e -
2015-12-21 12:41:52.000000000 -0600 ./gsk8capicmd d41d8cd98f00b204e9800998ecf8427e -
答案 0 :(得分:0)
我认为您尝试执行的文件名部分md5sum
包含管道输出的$5
,只需单独使用Awk
部分
awk '{ cmd = "md5sum "$5; while ( ( cmd | getline md5result ) > 0 ) { print $1,$2,$3,$4,md5result } ; close(cmd)} '