我正在尝试在文件名中查找具有两种不同模式的目录中的文件数。我不希望合并计数,但是显示合并结果。
命令1:find | grep ".coded" | wc -l
|输出:4533
命令2:find | grep ".read" | wc -l
|输出:654
寻求的输出:4533 | 654
一行
有什么建议吗?谢谢!
[使用GNU find
,您可以使用-printf
打印所需的内容,例如,每个与c
匹配的文件都为.coded
,而每个与.read
匹配的文件都为“ r”,然后使用awk计算每个人有多少:
find -type f \
\( -name '*.coded*' -printf 'c\n' \) \
-o \
\( -name '*.read*' -printf 'r\n' \) \
| awk '{ ++a[$0] } END{ printf "%d | %d\n", a["c"], a["r"]}'
顺便说一下,您的grep模式与Xcoded
和Yread
匹配,或者在您的期间内实际上匹配任何东西;如果它是一个字面上的句点,则必须像'\.coded'
和'\.read'
中那样转义。另外,如果您的文件名包含换行符,则计数为OFF。
使用bash shell使用command substitution
和pr
pr -mts' | ' <(find | grep "\.coded" | wc -l) <(find | grep "\.read" | wc -l)