#!/bin/bash
usernameFile="/home/netadmin/username_list.txt"
logFile="/var/log/netvpn-mag-archive/netvpn-mag-20160"
while read -r line < $usernameFile; do
if [[ "$line" != " " ]]; then
zgrep -w "$line" "$logFile"* >> grep_output.txt
fi
done < "$usernameFile"
이 스크립트를 사용하여 사용자 이름 파일에 있는 각 사용자의 로그 파일을 수집하고 싶습니다. 현재 스크립트는 첫 번째 사용자 이름을 계속해서 반복하고 있습니다. 로그 파일 디렉터리의 모든 파일을 검색한 후 중지하고 목록의 다음 이름으로 이동해야 합니다.
답변1
"$usernameFile"을 입력할 수 있는 위치는 두 군데가 있습니다. 하나는 전역 루프에 있고 다른 하나는 읽기에 있습니다.
while read -r line < $usernameFile; do
done < "$usernameFile"
전역 루프에만 입력해야 한다고 생각합니다. (즉, "완료" 뒤에 넣으면 됩니다.)
답변2
cat "$usernameFile" | while read line;
do
if [[ "$line" != " " ]]; then
zgrep -w "$line" "$logFile"* >> grep_output.txt
fi
done