파일에서 줄 읽기

파일에서 줄 읽기

안녕하세요, 어떻게 파일의 각 줄을 읽고 다른 파일과 비교할 수 있나요...실제로 파일은 명령줄에서 가져와야 합니다...도와주세요

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

관련 정보