파일을 마지막으로 읽은 이후 마지막으로 변경된 내용을 어떻게 얻을 수 있습니까?
이것보다 더 정확한 것은 다음과 같습니다.
tail - <nr >file_1.txt >file_2.txt
그 중 file_2.txt가 마지막으로 수정된 내용을 가져옵니다.
답변1
이와 같은 작업을 수행할 수 있는 유일한 방법은 파일을 마지막으로 읽을 때 임시 이름으로 파일 복사본을 보관한 다음 다시 다시 읽을 때 diff
이전에 읽은 것과 비교하는 것과 같은 도구를 사용해야 하는 것입니다. 파일의 복사본과 파일의 현재 버전.
예
일부 샘플 파일.
$ seq 10 > somefile.txt
$ ls -l |grep somefile.txt
-rw-rw-r-- 1 saml saml 21 Oct 26 13:29 somefile.txt
이제 읽어보자.
$ cat somefile.txt | tee somefile_READ1.txt
1
2
3
4
5
6
7
8
9
10
여기의 명령은 tee
파일을 보여주고 다음에 읽을 줄을 보여주는 "백업" 복사본을 만듭니다. 이제 남은 것은 다음 파일뿐입니다.
$ ls -l |grep somefile
-rw-rw-r-- 1 saml saml 21 Oct 26 13:30 somefile_READ1.txt
-rw-rw-r-- 1 saml saml 21 Oct 26 13:29 somefile.txt
이제 몇 가지 추가 줄이 추가되었습니다.
$ seq 11 20 >> somefile.txt
두 파일의 날짜를 비교하면 마지막으로 읽은 이후 작성된 날짜를 확인할 수 있습니다.
$ ls -l |grep somefile
-rw-rw-r-- 1 saml saml 21 Oct 26 13:30 somefile_READ1.txt
-rw-rw-r-- 1 saml saml 51 Oct 26 13:32 somefile.txt
이제 다음 두 파일을 비교해 보세요.
$ diff -y somefile.txt somefile_READ1.txt | column -t
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 <
12 <
13 <
14 <
15 <
16 <
17 <
18 <
19 <
20 <
위에서 두 파일을 나란히 볼 수 있습니다. 업데이트된 파일 콘텐츠는 왼쪽에 있고 원본 콘텐츠는 오른쪽에 있습니다.
차이점을 확인하려면 다음 형식을 사용할 수 있습니다 diff
.
$ diff somefile.txt somefile_READ1.txt
11,20d10
< 11
< 12
< 13
< 14
< 15
< 16
< 17
< 18
< 19
< 20