C 쉘 스크립트: 두 문자열을 비교하는 방법은 무엇입니까?

C 쉘 스크립트: 두 문자열을 비교하는 방법은 무엇입니까?

저는 C 쉘 사용자입니다.

두 개의 파일이 있습니다.

파일 1:

A
B
C
D
E

파일 2:

A
C
B
D
E

A-A루프 비교 , B-C, C-B, , 을 사용하고 싶습니다 D-D.E-Efor

문자열이 일치하면 "일치"를 인쇄합니다.

출력은 다음과 같습니다.

A A -> match
B C -> " "
C-B -> " "
D-D -> match
E-E -> match

루프를 어떻게 사용하나요 for?

답변1

paste다음은 이 명령을 사용하여 두 파일을 목록으로 구성하는 예제 스크립트입니다 .

A-A
B-C
...

그런 다음 결합된 각 문자열을 2개의 개별 부분으로 구문 분석하고 이를 변수 f1sum 에 저장합니다 f2.

#!/bin/csh

foreach i (`paste -d"-" file1 file2`)
  set f1=`echo $i | cut -d"-" -f1`
  set f2=`echo $i | cut -d"-" -f2`
  if ($f1 == $f2) then
    echo "$f1 $f2 -> match"
  else
    echo "$f1 $f2 -> "'" "'
  endif
end

나머지 코드는 표준 C 셸입니다.

$ ./cmd.csh
A A -> match
B C -> " "
C B -> " "
D D -> match
E E -> match

인용하다

관련 정보