특정 디렉터리를 크롤링하고 모든 x265 파일을 나열하는 스크립트를 만들려고 합니다. mediainfo를 사용하여 파일이 x264인지 x265인지 확인한 다음 sed를 사용하여 텍스트를 정리합니다. 제가 이해하지 못하는 부분은 다음과 같습니다.
1. cli에서는 작동하지만 여기에서는 작동하지 않는 명령을 어떻게 공식화합니까?
2. 하위 디렉토리를 포함하도록 하려면 어떻게 해야 합니까?
#!/bin/bash
for file in ls
search='mediainfo $file | grep -E "Writing library"| sed 's/.*x//'| sed 's/\s.*$//''
if [ $search -eq 265 ]
then
echo $file is a 265
else
echo $file is not 265 and is $search
fi
답변1
for
다음과 같은 형식을 사용할 수 있습니다 .
for file in **/*
현재 디렉터리와 하위 디렉터리의 모든 파일을 가져옵니다.
반환 값을 변수에 할당하려면 역따옴표를 사용하세요.
search=`mediainfo $file | grep -E "Writing library"| sed 's/.*x//'| sed 's/\s.*$//'`
다음과 같은 것을 사용하면 출력이 단순화될 수 있습니다.
mediainfo --Inform="Video;%Codec%" $file
또는
ffprobe $file 2>&1 >/dev/null | grep Stream.*Video