안녕하세요, 어떻게 파일의 각 줄을 읽고 다른 파일과 비교할 수 있나요...실제로 파일은 명령줄에서 가져와야 합니다...도와주세요
if [[-f $@ ]];
then
for "$line" in $@;
do
if grep "^$line" /etc/passwd > /dev/null;
then IFS=":";
read usr pwd uid gid gcos home shell < <(grep "^$user" /etc/passwd);
IFS=",";
read name <<< "$gcos";
printf "UID:%-10s Name:%s\n" "$uid" "$name";
else
echo "No User"
fi
done
fi
답변1
안녕하세요, 파일의 각 줄을 어떻게 읽고 다른 파일과 비교할 수 있나요?
두 파일을 비교하고 싶다면 다음을 제안할 수 있습니다.
옵션 1차이점=> 파일 차이점을 나란히 병합
sdiff file1 file2
예제 출력:
abcdev abcdev
abcdev abcdev
abcdev abcdev
abcdev | abcde33
옵션 #2차이점=> 파일을 한 줄씩 비교
diff file1 file2
예제 출력:
4c4
< abcdev
---
> abcde33
옵션 #3Wimdiv=> Vim을 사용하여 파일의 2개, 3개 또는 4개 버전을 편집하고 차이점을 표시하세요.
vimdiff file1 file2
예시 화면(차이점을 확인하면서 파일을 편집할 수 있음):
옵션 #4grep=> 패턴과 일치하는 라인 인쇄
grep -Fxvf file1 file2
로고 분석:
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched.
-x, --line-regexp
Select only those matches that exactly match the whole line.
-v, --invert-match
Invert the sense of matching, to select non-matching lines.
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The empty file contains zero patterns, and therefore matches nothing.
예제 출력:
abcde33