내 사진이 모두 포함된 디스크에서 중복된 사진을 찾으려고 합니다. 이를 위해 중복 가능성이 있는 파일을 만들었습니다(일부 EXIF 및 체크섬 속성을 사용했지만 이는 질문의 목적이 아닙니다).
나는 이 형식을 사용하여 파일을 만들었습니다(주로 EXIFtool 및 몇 가지 형식을 사용함).
./PICTURES_archives/organizer/Ipad/823WGTMA/IMG_1777.JPG <--> ./PICTURES_archives/organizer/Ipad/965YOKDJ/IMG_2346.JPG
./PICTURES_archives/a Organizer/iCloud Photos/내 사진 스트림/IMG_0954.JPG <--> ./Pictures A classer/Iphone 5S Icloud/IMG_0954.JPG
awk
동일한 출력을 다른 형식으로 표시하기 위해 다음 스크립트를 만들었습니다 .
awk -F'<-->' 'BEGIN {
format1= "%25s %-50s\n";
format2 = "%-50s %s\n";
compt=1
}
{
compt++;
split($1,a,"/");
split($2,b,"/");
longb=length(b);
longa=length(a);
long=longb;
if (longa>longb) long=longa;
for(i=1; i<=long;i++) {
if(a[i]==b[i]) printf format1," ", a[i] ;
else printf format2, a[i],b[i]
}
print "\n"
}' identical.txt
나에게 더 읽기 쉽습니다. 출력은 다음과 같습니다
아카이브 | 공통 경로 | 파일b |
---|---|---|
. | . | |
사진_아카이브 | ||
조직자 | ||
태블릿 | ||
823WGTMA | 965YOKDJ | |
IMG_1777.JPG | IMG_2346.JPG | |
. | . | |
사진_아카이브 | PictureA Classer | |
조직자 | iPhone 5S 클라우드 드라이브 | |
iCloud 사진 | IMG_0954.JPG | |
내 사진 스트림 | ||
IMG_0954.JPG |
문제점: 파일 a와 b가 서로 다른 정보를 가지고 있을 때 출력에 색상을 추가하고 싶습니다.
나는
printf format2, "\033[33m"a[i] "\033[0m","\033[33m"b[i] "\033[0m"
but it shows me the following output
ESC[33m823WGTMAESC[0m ESC[33m965YOKDJESC[0m
ESC[33mIMG_1777.JPG ESC[0m ESC[33mIMG_2346.JPGESC[0m
ESC[33m은 색상으로 해석되지 않습니다.
어떤 팁이 있나요?
운영 체제: Darwin macOS Big Sur
답변1
문제는 출력을 파이핑하고 less
있으며 less
기본적으로 이러한 이스케이프 시퀀스가 해석되지 않는다는 것입니다. 그러나 사용하면 훌륭하게 작동합니다 less -R
. 이에 대한 문서는 다음과 같습니다 man less
.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences and OSC 8 hy‐
perlink sequences are output in "raw" form. Unlike -r, the
screen appearance is maintained correctly, provided that there
are no escape sequences in the file other than these types of
escape sequences. Color escape sequences are only supported
when the color is changed within one line, not across lines.
In other words, the beginning of each line is assumed to be
normal (non-colored), regardless of any escape sequences in
previous lines. For the purpose of keeping track of screen ap‐
pearance, these escape sequences are assumed to not move the
cursor.