디렉터리에서 파일을 반복적으로 추출하고 매개변수가 있는 파일에서 exe를 실행합니다.

디렉터리에서 파일을 반복적으로 추출하고 매개변수가 있는 파일에서 exe를 실행합니다.

좋아요, 제가 하고 싶은 일은 다음과 같습니다. 다음과 같은 파일이 많이 있습니다.

newnslog.0.tar.gz
newnslog.1.tar.gz
newnslog.2.tar.gz 
newnslog.3.tar.gz
newnslog.4.tar.gz
.
.
.

각 파일을 추출한 후 해당 디렉터리의 모든 파일을 반복하고 파일의 데이터에 대해 exe를 실행하고 싶습니다.

#extract:
tar -xzf newnslog.58.tar.gz
#cd:
cd newnslog.59 < yes the filename in the archive may be 1 more or less or the same as it is a continuation
#ls:
newnslog.ppe.0  newnslog.ppe.1  newnslog.ppe.2
#execute nsc2e with parameters against each file:
# ../nsc2e -c /netscaler/nsconmsg -K newnslog.ppe.0 -f ../nsc2e.conf

for - do 루프를 시도하고 있는데 뭔가 잘못하고 있는 것 같습니다.

root@VPX-13# for f in *; do '../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf'; done
-bash: ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf: No such file or directory
-bash: ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf: No such file or directory
-bash: ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf: No such file or directory

또한 추출을 포함한 모든 작업을 수행하는 간단한 방법이 있어야 한다는 것도 알고 있습니다. 예를 들면 다음과 같습니다.

find newnslog* -prune -type d | while IFS= read -r d; do 
    cd "$d"
    for f in *; do '../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf'; done
done

답변1

다음과 같이 명령 주위의 따옴표를 제거하십시오.이르카초다음 의견:

for f in *; do ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf; done

...이 문제를 해결했습니다.

관련 정보