перебирать стандартный ввод sh (контекст: фильтровать файлы c по жанру grep) - PullRequest
1 голос
/ 28 апреля 2020

У меня есть это:

for file in **/*.ogg;  
    if ffprobe "$file" 2>&1 | sed -E -n 's/^ *GENRE *: (.*)/\1/p' | grep -q "$argv"; 
        echo "$file"
    else
    end
end

, но я бы хотел превратить его в функцию, которая будет принимать список имен файлов в качестве стандартного ввода:

$ find . -maxdepth 1 -not -type d -exec du -h {} + | cut -f2 | filterByGenre Classical

1 Ответ

2 голосов
/ 28 апреля 2020

Вы можете сделать

function filterByGenre
    while read line
        do stuff with $line
    end
end

или

function filterByGenre
    set listOfLines (cat)
    for line in $listOfLines
        do stuff with $line
    end
end
...