grep 获取文件中的多个字符串,然后按大小顺序列出文件

Sof*_*mur 4 shell grep bash

我在一个有很多.txt文件的文件夹中,我想找到包含stringA和的所有文件stringB(不一定在同一行),然后按大小顺序(从小到大)列出这些文件

我尝试了以下方法,但不起作用:

ls -lS | for f in *; do grep -q stringA $f && grep -l stringB $f; done
Run Code Online (Sandbox Code Playgroud)

有没有人有好主意?

enz*_*tib 5

您可以使用GNU find

find . -maxdepth 1 -exec grep -q stringA {} \; -exec grep -q stringB {} \; \
        -printf '%10s %p\n' | 
    sort -n
Run Code Online (Sandbox Code Playgroud)