我试图从 unrar 命令详细获取文件名,并通过命令行删除它们。
unrar 命令输出类似于:
Extracting BucketSort.cpp OK
Extracting BucketSort.vcxproj OK
Extracting BucketSort.vcxproj.filters OK
Extracting BucketSort.lastbuildstate OK
Extracting BucketSort.log OK
Extracting BucketSort.obj OK
Extracting BucketSort.pch OK
所以到目前为止我想出了这个 awk 命令:
unrar e BucketSort.rar | awk '{if (match($0,/Extracting\s*([\w|.]+)\s*OK/,m)) print m[0]}'
但没有打印任何内容。当我只留下“正在提取”一词来匹配时,我可以看到所有提取文件的“正在提取”。所以它不能识别用正则表达式编写的内容,但我不知道它是什么。你知道这个表达有什么问题吗?
PS:你可以检查正则表达式这里。
答案1
这应该可以解决问题:
unrar e BucketSort.rar | awk '/^Extracting/ {print $2}'